Untilループ
CoddyのRubyジャーニー「基礎」セクションの一部 — レッスン 45/88。
untilループはwhileループの反対です。条件が真(true)である間実行されるのではなく、条件が真(true)になるまで実行されます。「これが起こるまで続ける」と考えてください。
count = 1
until count > 3
puts count
count += 1
endこれは 1, 2, 3 を出力します。count > 3 が false である限り、ループは継続します。count が 4 になると、条件が true になり、ループが停止します。
これを同等の while ループと比較してください:
# これら2つのループは同じことを行います:
while count <= 3 # これが真(TRUE)の間実行されます
until count > 3 # これが真(TRUE)になるまで実行されますuntilループは、何かが起こるのを待っているときに、コードをより読みやすくすることができます。カウントダウンの例を次に示します:
num = 5
until num == 0
puts num
num -= 1
end
puts "Liftoff!"これは5から1までカウントダウンし、numが0になると「Liftoff!」と出力します。特に特定の条件が発生するのを待っている場合など、意図をより明確にしたいときはuntilを選択してください。
チャレンジ
簡単入力から数値 n を読み取ります。until ループを使用して、1 から n までのすべての数値を、それぞれ新しい行に出力してください。n に達した後、新しい行に Done! と出力します。
ループは、カウンターが n を超えるまで継続する必要があります。
入力は、ターゲットとなる数値を表す単一の整数です。
例えば、入力が 4 の場合、出力は以下のようになります:
1
2
3
4
Done!入力が 6 の場合、出力は以下のようになります:
1
2
3
4
5
6
Done!チートシート
untilループは、条件が真(true)になるまで実行されます(whileの逆です):
count = 1
until count > 3
puts count
count += 1
end
# 出力: 1, 2, 3whileループとの比較:
while count <= 3 # これが真(TRUE)の間実行
until count > 3 # これが真(TRUE)になるまで実行カウントダウンの例:
num = 5
until num == 0
puts num
num -= 1
end
puts "Liftoff!"自分で試してみよう
# ターゲットとなる数値を読み込む
n = gets.to_i
# カウンタを初期化する
counter = 1
# TODO: 以下にコードを記述してください
# untilループを使用して1からnまでの数値を出力する
# ループはカウンタがnを超えるまで継続させる
# ループの後に "Done!" を出力する
puts "Done!"このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。