-3

たとえば、次のコードでは、条件が次のように評価されるとすぐにループを終了したいと思います。true

x = "B"

until x == "A"
x = gets.chomp
puts "x is not equal to "A""
end

したがって、ユーザーが入力する"F"と が表示されますputsが、入力する"A"putsは出力されません。

4

2 に答える 2

1

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
于 2013-10-05T16:23:41.813 に答える
0

キーワード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"
于 2013-10-05T16:30:54.000 に答える