たとえば、次のコードでは、条件が次のように評価されるとすぐにループを終了したいと思います。true
x = "B"
until x == "A"
x = gets.chomp
puts "x is not equal to "A""
end
したがって、ユーザーが入力する"F"
と が表示されますputs
が、入力する"A"
とputs
は出力されません。
x = true
に代入true
するx
ので、until x = true
と同等until true
です。
したがって、次の行を次のよう=
に置き換えます。==
until x = true
->
until x == true
または、それは決して終わらないでしょう。
アップデート
次のコードを使用します。
while true
x = gets.chomp
break if x == 'A'
puts 'x is not equal to "A"'
end
また
until (x = gets.chomp) == 'A'
puts 'x is not equal to "A"'
end
キーワードbreak
はループから抜けます。
x = false
a = 0
b = 0
until x # is a boolean already so no need for == true
a = 1
b = 2
# code here that could change state of x
break if x # will break from loop if x == anything other than false or nil
a = 2
b = 1
end
明らかに、これは適切なコードではありませんが、そこにはいくつかの便利な概念があり、それを理解できる可能性があります。
編集
新しいコードに応じて、foruntil
ループを適切に使用します。
puts "x is not equal to 'A'" until (x = gets.chomp) == "A"