マンガで分かる Java入門講座

第5章 様々な処理
5-7. ループ処理4 continue

繰り返し処理を、末尾に移動してやり直す「continue」について紹介します。

● continue

 ループ処理では、繰り返し処理の途中で、繰り返し処理の末尾に飛ばすことができます。

 この処理を行う命令が「continue」です。以下、その例を示します。

図)continueによる処理のスキップ
int a = 0;
for (int i = 1; i <= 100; i ++) { ←─────┐
  if (i % 2 == 0) {             │
    // iを2で割った値が0(偶数)ならば   │
    // a += 1;の行に行かず        │
    //繰り返し処理の末尾に飛ぶ      │
    continue; ────────────┐ │
  }                   │ │
  a += i;   // 奇数の場合だけ加算   │ │
                     │ │
  【末尾】←──────────────┘ │
  末尾に来たら、変化式の処理に移行する───┘
}

● 入れ子になったループ処理でcontinue

 入れ子になったループ処理では、breakと同じように、continueでもラベルを使って対象のfor文を指定できます。

 以下、その例を示します。

ソースコード)外側のループに飛ぶ
int a = 0;
outer:
for (int i = 1; i <= 10; i ++) {
    for (int j = 1; j <= 10; j ++) {
        if ((i * j) % 2 == 0) {
            // i*jが偶数なら外側のfor文に飛ぶ
            System.out.println(i + "*" + j + " 偶数");
            continue outer;
        }
        a += i * j;
        System.out.println(i + "*" + j + " " + a);
    }
}
System.out.println("結果 " + a);

出力)外側のループに飛ぶ
1*1 1
1*2 偶数
2*1 偶数
3*1 4
3*2 偶数
4*1 偶数
5*1 9
5*2 偶数
6*1 偶数
7*1 16
7*2 偶数
8*1 偶数
9*1 25
9*2 偶数
10*1 偶数
結果 25

この講座のマンガ部分は「箱人形マンガ(Box Comic) 」で作成しています。
作成:2013/05/23  更新:2015/08/09  [Permalink]