break文
break文はfor文、while文、do..while文、switch文のブロック内で使用され、break文が実行されるとブロックを抜けて次の処理へ移ります。break文の書式は次のようになっています。
break;
switch文の中でbreak文をどのように使うのかについては「switch文」を参照して下さい。まずはfor文での使い方かた確認します。
for文は条件式がtrueの間、ブロック内の処理を繰り返し実行しますが、break文が実行されるとfor文を終了し次の処理へ移ります。
for (初期化式; 条件式; 変化式){ ... if (条件式){ break; } ... }
if文などと組み合わせてbreak文を記述します。(if文などと組み合わせなければ、必ず1回目の繰り返しの途中でbreak文が実行されfor文が終了してしまいます)。
実際には次のように記述します。
int sum = 0; for (int i = 1; i <= 100; i++){ sum += i; if (sum > 100){ break; } } System.out.println("sum = " + sum);
この場合、1から100までの数値を順に加算していきますが、合計が100を超えた時点でbreak文を実行しfor文を終了し次の文へ処理が移ります。
while文の場合も基本的に同じです。繰り返しの途中でbreak文が実行されるとwhile文を終了し次の処理へ移ります。
while (条件式){ ... if (条件式){ break; } ... }
実際には次のように記述します。
int num = 1; while(true){ System.out.println(num); num++; if (num > 100){ break; } }
この場合、while文の条件式が「true」となっていますので条件式を評価した結果は常に「true」となりこのままでは無限ループとなります。ただし変数「num」の値が100を越えたらbreak文が実行されwhile文が終了します。
do..while文の場合も基本的には同じです。
サンプル
では簡単な例で試しておきます。
class JSample1_1{ public static void main(String args[]){ int sum; sum = 0; for (int i = 1; i <= 100; i++){ sum += i; } System.out.println("sum = " + sum); sum = 0; for (int i = 1; i <= 100; i++){ sum += i; if (sum > 100){ break; } } System.out.println("sum = " + sum); } }
コンパイル後に実行すると次のように表示されます。
今回は同じ条件式のfor分を使い、break文がある場合と無い場合で試しました。break文がある場合は繰り返し処理が途中で終了していることが確認できます。
( Written by Tatsuo Ikura )