这可能是一个愚蠢的问题,但我无法让它发挥作用。很确定我错过了什么。
我想将布尔值设置为false
然后仅在满足条件时将其设置为true
。
boolTest = false
until boolTest = true
puts "Enter one fo these choices: add / update / display / delete?"
choice = gets.chomp.downcase
if choice == "add" || choice == "update" || choice == "display" || choice == "delete"
boolTest = true
end
end
只是刚开始学习Ruby,所以也许我会混淆其他语言的功能。
答案 0 :(得分:6)
由于您正在使用until
,因此有效地写出while not boolTest
。您无法使用=
,因为它已被保留用于分配;相反,省略布尔条件。
检查布尔值对布尔值没有价值;如果你真的想保留它,你必须使用==
。
boolTest = false
until boolTest
puts "Enter one fo these choices: add / update / display / delete?"
choice = gets.chomp.downcase
if choice == "add" || choice == "update" || choice == "display" || choice == "delete"
boolTest = true
end
end
作为优化/可读性提示,您还可以调整布尔条件,以便choice
没有重复的语句;你可以在数组中声明所有thoe字符串,并通过choice
检查数组中是否存在include?
。
boolTest = false
until boolTest
puts "Enter one fo these choices: add / update / display / delete?"
choice = gets.chomp.downcase
boolTest = %w(add update display delete).include? choice
end