Next (Continue)
CoddyのRジャーニー「基礎」セクションの一部 — レッスン 41/78。
break はループを完全に終了しますが、現在の反復処理をスキップして次の処理から継続したいだけの場合もあります。next 文はまさにそのためのものです。
for (i in 1:5) {
if (i == 3) {
next
}
print(i)
}出力:
[1] 1
[1] 2
[1] 4
[1] 5iが3に等しいとき、next文はそのイテレーションの残りをスキップするため、3は出力されません。その後、ループは通常通り4と5で続行されます。
これは、ループ全体を停止させずに特定の値を除外したい場合に便利です。例えば、偶数のみを表示する場合などです:
for (num in 1:6) {
if (num %% 2 != 0) {
next
}
print(num)
}出力:
[1] 2
[1] 4
[1] 6ここでは、nextを使用して奇数がスキップされ、偶数のみが出力されます。breakとの主な違いは、ループが実行され続けることで、特定の反復処理のみをスキップする点にあります。
チャレンジ
簡単入力から数値 n を読み取ります。forループを使用して1から n までを反復処理し、4で割り切れない数値のみを出力してください。
next ステートメントを使用して4で割り切れる数値をスキップし、それ以外のすべての数値を print() を使用して出力してください。
例えば、入力が 10 の場合、出力は以下のようになります:
[1] 1
[1] 2
[1] 3
[1] 5
[1] 6
[1] 7
[1] 9
[1] 104と8は4で割り切れるため、スキップされていることに注意してください。
チートシート
next ステートメントは、ループの現在の反復をスキップし、次の反復を続行します。
for (i in 1:5) {
if (i == 3) {
next
}
print(i)
}出力:
[1] 1
[1] 2
[1] 4
[1] 5i が 3 に等しいとき、next はその反復の残りをスキップするため、3 は出力されません。ループは残りの値で続行されます。
例 - 偶数のみを出力する:
for (num in 1:6) {
if (num %% 2 != 0) {
next
}
print(num)
}出力:
[1] 2
[1] 4
[1] 6ループを完全に終了する break とは異なり、next はループの実行を続けながら、特定の反復のみをスキップします。
自分で試してみよう
# 入力を読み込む
con <- file("stdin", "r")
n <- as.integer(suppressWarnings(readLines(con, n = 1)))
# TODO: 以下にコードを記述してください
# 1からnまで繰り返すためにforループを使用してください
# 4で割り切れる数値をスキップするためにnext文を使用してください
# それ以外のすべての数値をprint()を使用して出力してくださいこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。