While ループ
CoddyのRジャーニー「基礎」セクションの一部 — レッスン 39/78。
for ループがあらかじめ定義されたシーケンスを反復処理するのに対し、while ループは条件が TRUE である限り実行を続けます。これは、何かを繰り返す必要がある回数があらかじめわかっていない場合に便利です。
count <- 1
while (count <= 3) {
print(count)
count <- count + 1
}出力:
[1] 1
[1] 2
[1] 3ループは各反復の前に条件 count <= 3 をチェックします。count が4になると、条件は FALSE となり、ループは停止します。
重要: ループ内で変数を更新する必要があります。count <- count + 1 がないと、条件は常に TRUE になり、終わることのない無限ループが発生します。
total <- 0
num <- 1
while (num <= 5) {
total <- total + num
num <- num + 1
}
print(total)出力:
[1] 15この例では1から5までの数値を加算し、結果は15になります。whileループは、終了地点が固定のシーケンスではなく条件に依存する場合に最適です。
チャレンジ
簡単入力から数値 n を読み取ります。while ループを使用して、1 から n までのすべての数値の合計を計算し、出力してください。
合計を追跡するための変数と、カウンターとしての別の変数から始めます。カウンターが n 以下である間、合計に加算し続け、各反復でカウンターをインクリメントします。
ループが完了したら、print() を使用して最終的な合計を出力します。
例えば、入力が 5 の場合、出力は以下のようになります。
[1] 15これは、1 + 2 + 3 + 4 + 5 = 15 であるためです。
チートシート
whileループは、条件がTRUEである限り実行されます:
count <- 1
while (count <= 3) {
print(count)
count <- count + 1
}ループは各反復の前に条件をチェックします。条件がFALSEになると、ループは停止します。
重要: 無限ループを避けるために、常にループ内で変数を更新してください:
total <- 0
num <- 1
while (num <= 5) {
total <- total + num
num <- num + 1
}
print(total) # 出力: [1] 15whileループは、停止ポイントが固定されたシーケンスではなく条件に依存する場合に最適です。
自分で試してみよう
# 入力を読み込む
con <- file("stdin", "r")
n <- as.integer(suppressWarnings(readLines(con, n = 1)))
# 変数を初期化する
total <- 0
counter <- 1
# TODO: 1からnまでの合計を計算するwhileループを以下に記述してください
# 結果を出力する
print(total)このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。