While ループ
CoddyのRジャーニー「基礎」セクションの一部。レッスン 39/78。
for loop はあらかじめ定義されたシーケンスを反復処理しますが、while loop は条件が TRUE である限り実行され続けます。これは、何回繰り返す必要があるかを事前に把握できない場合に便利です。
count <- 1
while (count <= 3) {
print(count)
count <- count + 1
}出力:
[1] 1
[1] 2
[1] 3loop は各反復の前に条件 count <= 3 を確認します。count が 4 になると、条件は FALSE になり、loop は停止します。
重要: loop内の変数を更新する必要があります。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 だからです。
自分で試してみよう
# 入力を読み込む
con <- file("stdin", "r")
n <- as.integer(suppressWarnings(readLines(con, n = 1)))
# 変数を初期化する
total <- 0
counter <- 1
# TODO: 1からnまでの合計を計算するwhileループを以下に書いてください
# 結果を出力する
print(total)このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Rオンラインコンパイラ