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)である限り、loop は継続します。count が 4 になると、条件が真(true)になり、loop は停止します。
これを同等の while ループと比較してみましょう。
# これらの2つのループは同じことをします:
while count <= 3 # これがTRUEの間実行する
until count > 3 # これがTRUEになるまで実行する何かかが起こるのを待つような場合、until loop を使うことでコードの可読性を高めることができます。以下はカウントダウンの例です:
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!自分で試してみよう
# 対象の数値を読み取る
n = gets.to_i
# カウンターを初期化する
counter = 1
# TODO: 以下にコードを書いてください
# untilループを使って1からnまでの数字を出力する
# ループはcounterがnを超えるまで続ける
# ループの後に指示通りの正確なテキストを出力する
puts "Done!"このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Rubyオンラインコンパイラ