我对编程非常陌生,我尝试在if语句中使用测试多个条件来查看输入的数字是5,10或15.如果没有则输出错误消息。无论输入什么数字,它总是输出错误信息。
when 3
print("Enter the discount percentage, must be (5, 10, or 15)")
dis= gets.to_i
if (dis != 5 || dis != 10 || dis != 15)
puts("You entered an invalid discount")
else
end
答案 0 :(得分:2)
puts ("You entered an invalid discount") unless [5,10,15].include?(dis)
答案 1 :(得分:1)
你的病情的正确逻辑将是
if dis != 5 && dis != 10 && dis != 15
因为如果数字不是5,也不是10,也不是15,则要打印错误。
是一种更酷的写作方式if [5, 10, 15].all? { |i| dis != i }
答案 2 :(得分:1)
可以使用Enumerable#grep
:
puts ("You entered an invalid discount") unless [5,10,15].grep(dis).any?
答案 3 :(得分:0)
使用正则表达式的另一种方式:
puts "Enter discount, must be 5,10 or 15"
puts gets[/\A1?[05]\n\z/] ? 'Discount applied' : 'Invalid discount'