在ruby中的if语句中使用多个条件

时间:2017-02-11 19:40:07

标签: ruby

我对编程非常陌生,我尝试在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

4 个答案:

答案 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'