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

第5章 様々な処理
5-6. ループ処理3 break

繰り返し処理を途中で抜ける場合に利用する「break」について紹介します。

● break

 ループ処理は、「for (初期化; 継続条件; 変化)」の継続条件を満たしていなくても終了させることができます。その終了には「break」という命令を使います。このbreakが出て来た所で、ループ処理は強制的に終了します。

ソースコード)breakによるループ処理の終了
for (int i = 0; i < 100; i ++) {
    break;  // ここでループ処理が終わる
}

● 様々な条件でのループ処理の終了

 breakは、条件分岐と組み合わせることで威力を発揮します。

 たとえば、1から100までの数字を足していき、100以上になったら終了するといった処理も簡単に書くことができます。

ソースコード)様々な条件でのループ処理の終了
int a = 0;
for (int i = 1; i <= 100; i ++) {
    a += i;
    System.out.println(i + " " + a);
    if (a >= 100) {
        // 変数aの値が100以上なら
        // ループ処理を終わる
        break;
    }
}
System.out.println("結果 " + a);

出力)様々な条件でのループ処理の終了
1 1
2 3
3 6
4 10
5 15
6 21
7 28
8 36
9 45
10 55
11 66
12 78
13 91
14 105
結果 105

● 入れ子になったループ処理の終了

 ループ処理は入れ子になることを以前紹介しました。この入れ子のループ処理の場合、内側のループの中を処理中に、外側のループを抜けたいような場合も出てきます。

ソースコード)外側のループを抜けたい
int a = 0;
for (int i = 1; i <= 10; i ++) {
    for (int j = 1; j <= 10; j ++) {
        a += i * j;
        if (a >= 100) {
            // 変数aの値が100以上なら
            // 外側のループ処理を抜けたい
        }
    }
}

 こういった場合は、外側のループ処理に「ラベル」を付けて、breakに、どのループを抜けるのか指定します。

 ラベルは「ラベル名:(コロン)」と書きます。これで、内側のループ処理の最中であっても、外側のループ処理を抜けることができます。

ソースコード)外側のループを抜ける
int a = 0;
outer:
for (int i = 1; i <= 10; i ++) {
    for (int j = 1; j <= 10; j ++) {
        a += i * j;
        System.out.println(i + " " + j + " " + a);
        if (a >= 100) {
            // 変数aの値が100以上なら
            // 外側のループ処理を抜けたい
            break outer;
        }
    }
}
System.out.println("結果 " + a);

出力)外側のループを抜ける
1 1 1
1 2 3
1 3 6
1 4 10
1 5 15
1 6 21
1 7 28
1 8 36
1 9 45
1 10 55
2 1 57
2 2 61
2 3 67
2 4 75
2 5 85
2 6 97
2 7 111
結果 111

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