continueで次のループ処理にいこう

ここでは continue を使ってみましょう。
前回までで、while文for文について学びました。
continue を用いることで、while や for の処理をスキップさせることができるようになり、色々と凝った処理ができるようになります。

動かしてみよう

では、まずはサンプルコードを動かしてみましょう。
for文の時に、1〜入力値までの総和を求めるサンプルを使いましたが、ここではそれをアレンジして、1〜入力値までの奇数の総和を求めてみましょう。
入力欄に数字をいれて、実行ボタンを押してください。

実行できましたか?
1+3 = 4
1+3+5 = 9
といったように、奇数の総和の算出ができていますね。

では、解説に進みましょう。

解説

continue の基本構文は下記です。
for文やwhile文内の任意の箇所に continue; と書くことで、機能を実現できます。

/* for文 */
for(初期化; 継続条件; カウンタ更新 )
{
  処理1;    /* なくてもよい */
  if( 条件式 ) continue;
  処理2;    /* なくてもよい */
}

/* while文 */
while( 継続条件 )
{
  処理1;    /* なくてもよい */
  if( 条件式 ) continue;
  処理2;    /* なくてもよい */
}

continue を単体で記述すると、必ず以降の処理が実施されないことになってしまいますので、だいたいはif文とセットで用います。
上記の例では、処理1を常におこない、処理2は条件式が不成立の時だけおこなうような振る舞いとなります。

サンプルコードでは

if( (count % 2) == 0 ) continue;

と実装していました。
(count % 2) == 0 なので 2で割った余りが0(つまり偶数)の時は、continue つまり以降の処理をせずにループの先頭に戻すという動作になります。
これによって、奇数の場合だけ加算処理をおこなうことになり、奇数の総和演算が実現できたということになります。

まとめ

まとめです。

  • for文やwhile文の中に continue; と書くことで、今のループの以降の処理をスキップできます。
  • if文と組み合わせて使うのが一般的です。

以上です。
ではまた。

タイトルとURLをコピーしました