continue文とは
`continue`文は、
プログラミング言語のループ構造内で使用される制御文の一つです。ループの実行中に、特定の条件を満たした場合に、その時点でのループ内の処理を中断し、次の繰り返し処理へと移行させるために使用されます。
文法
`continue`文は、主に`for`文、`while`文、`do-while`文などの繰り返し処理を記述する構文内で利用されます。
C言語、
C++、
Java、
JavaScriptといった多くの
プログラミング言語で共通して`continue`というキーワードが用いられます。ただし、
Perlでは`next`が`continue`に相当する機能を持っています。
`continue`文が実行されると、その時点のループ本体の処理は中断され、ループの先頭に戻る動作となります。具体的な動作は、ループの種類によって若干異なります。
各ループでの動作
- - `for`文: `continue`文が実行されると、ループ本体の残りの処理をスキップし、更新式が実行された後、条件式が評価されます。
- - `while`文: `continue`文が実行されると、ループ本体の残りの処理をスキップし、条件式が評価されます。
- - `do-while`文: `continue`文が実行されると、ループ本体の残りの処理をスキップし、条件式が評価されます。`do-while`文の場合、ループ本体の最後に条件判定があるため、直ちに条件判定に移ります。
誤解を招きやすい説明
入門書などでは、`continue`文の動作を正確に理解せずに、「`continue`文はループの条件式評価へ制御を移すもの」と説明されている場合があります。特に`for`文においては、「`continue`文が実行されると条件式の評価の前に更新式が実行される」といった説明がなされることもあります。しかし、これは正確な理解とは言えません。
`continue`文は、ループの先頭に戻る処理を促すものであり、条件式の評価へ直接的に制御を移すものではありません。`do-while`文の場合も、`while`文の最後尾に制御が移るのではなく、あくまでループの先頭に戻るという動作を理解することが重要です。
具体例
以下に
C99`'>[C言語]での`continue`文の使用例を示します。
コンマ演算子を利用して、制御の流れを視覚化します。
c
include
int main(void) {
for (int i = 0; i < 5; (printf("i: %d, ", i), i++)) {
if (i == 2) {
printf("continue
");
continue;
}
printf("loop: %d
", i);
}
return 0;
}
実行結果:
i: 0, loop: 0
i: 1, loop: 1
i: 2, continue
i: 3, loop: 3
i: 4, loop: 4
この例では、`i`が2の場合に`continue`文が実行され、その回のループ処理がスキップされ、次のループ処理に移行します。これにより、`i`が2の時の`loop: 2`が表示されないことがわかります。
まとめ
`continue`文は、ループ処理における制御構造の一部であり、ループ内の特定の処理をスキップする際に利用します。入門書などでの誤解を招きやすい説明に惑わされず、正確な動作を理解することが重要です。`continue`文を適切に利用することで、複雑なループ処理をよりシンプルに記述することができます。
関連項目