我正在尝试创建一个程序,用户使用正则表达式输入四个数字.如果其中一个数字是13,则左边的数字不计入总和.我的问题是创建一个异常,其中没有数字等于13.我似乎无法找到我的异常的正则表达式
puts "enter a number then hit enter four times"
number1 = STDIN.gets
number2 = STDIN.gets
number3 = STDIN.gets
number4 = STDIN.gets
if number1 =~ /13/ then
puts number2.to_i + number3.to_i + number4.to_i
end
if number2 =~/13/ then
puts number3.to_i + number4.to_i
end
if number3 =~/13/ then
puts number4.to_i
if number4 =~/13/ then
puts "0"
end
if number1 != 13 or number2 != 13 or number3 != 13 or number4 != 13
puts number1.to_i + number2.to_i + number3.to_i + number4.to_i
end
end
Run Code Online (Sandbox Code Playgroud)
我并不是要重写你的整个逻辑,但你可以使用枚举模块并做类似的事情
puts "enter a number then hit enter four times"
# Collect 4 numbers
numbers = 4.times.map{ STDIN.gets }.reverse
# Take the numbers until the first 13, then sum them
puts numbers.map(&:to_i).take_while{ |a| a != 13 }.reduce(:+)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
160 次 |
| 最近记录: |