Ruby 简单的代码行验证错误?
我无法使我的验证器正常工作 我需要允许用户能够输入字母A-F大写和小写,如果他们输入其他字母,则会给出错误 这是我的密码:Ruby 简单的代码行验证错误?,ruby,Ruby,我无法使我的验证器正常工作 我需要允许用户能够输入字母A-F大写和小写,如果他们输入其他字母,则会给出错误 这是我的密码: print "Enter a letter A-E to add to your order " items=gets.upcase.chomp if items != ("A" || "B" || "C" || "D" || "E") puts ("Incorrect Letter") end 如果输入了“A”或“A”,它可以正常工作,但对于任何其他数字它
print "Enter a letter A-E to add to your order "
items=gets.upcase.chomp
if items != ("A" || "B" || "C" || "D" || "E")
puts ("Incorrect Letter")
end
如果输入了“A”或“A”,它可以正常工作,但对于任何其他数字它都不起作用。这似乎很简单,它应该会起作用
知道我做错了什么吗?A | | B | | C | | D | | E总是在Ruby中返回A,因为A不是零的false:
等等
您应该使用包括:
由于您希望同时包含小写和大写字母,我建议:
unless ("a".."e").include?(items.downcase) puts ("Incorrect Letter")
A | | B | | C | | D | | E在Ruby中总是返回A,因为A不是零的false:
等等
您应该使用包括:
由于您希望同时包含小写和大写字母,我建议:
unless ("a".."e").include?(items.downcase) puts ("Incorrect Letter")
A | | B | | C | | D | | E是一个始终计算为A的表达式,因为A是真实的。因此,if语句相当于if items!='A'
要检查输入是否是多个选项之一,请使用数组的include?功能:
如果[A,B,C,D,E].include?itemsA | | B | | C | | D | E是一个始终计算为A的表达式,因为A是真实的。因此,if语句相当于if items!='A'
要检查输入是否是多个选项之一,请使用数组的include?功能:
如果[A、B、C、D、E],则包括?项
是带有| |的工作版本
unless items.between?("A", "E")
也许更具可读性
是带有| |的工作版本
unless items.between?("A", "E")
可能更具可读性。始终可以使用范围,a..E.include?始终可以使用范围,a..E.include?
unless items.between?("A", "E")