当我将75的值传递给我的程序时,为什么打印出来" 没有数字"? 75小于100且大于50.它应打印出" 范围:50 - 100 "。
def report_back(value)
case value
when (value < 100) && (value > 50)
message = 'number range: 50 - 100'
else
message = 'no number'
end
return message
end
puts 'enter a number between 0 - 100:'
number = gets.chomp.to_i
puts report_back(number)
答案 0 :(得分:1)
您错误地使用了case
语句。
更合适的方法是在when
中使用范围或使用if
语句。
以下示例。
def report_back(value)
case value
when 50...100
'number range: 50 - 100'
else
'no number'
end
end
另外,您也不需要return
值。
答案 1 :(得分:1)
我根本不是Ruby专家,而是基于this post,我建议你像这样编写你的switch语句:
case value
when 50..100
message = 'number range: 50 - 100'
else
message = 'no number'
end
答案 2 :(得分:1)
你有没有理由选择像这样构建你的答案?您可以轻松地将其写为:
def report_back(value)
value < 100 && value > 50 ? message = 'number range: 50 - 100' : message = 'not'
puts message
end
number = gets.chomp.to_i
report_back(75)
当有超过3个选项时,您通常会使用case
。在这里,简单的if...else
可能是更好的选择,因为实际上只有2个选项。我选择在这里使用三元运算符,但?..:
与if...else
相同。
一些技术要点
return
语句; Ruby有隐式返回,因此不需要返回关键字。puts
来返回数据;最好使用put in ie:代替return
关键字希望有所帮助。你有一个良好的开端 - 你很快就能得到它!