Java for文 処理を繰り返す(break/continue)

Javaのfor文で処理を繰り返すサンプルです。

for文 for文とは / for文のサンプル / 配列の値を取得
break ループを抜ける(break) / 2重ループでbreakを使用
  2重ループを抜ける(ラベル)
continue ループの先頭に戻る(continue) / 2重ループでcontinueを使用
拡張for文 ループで加算しない(拡張for文)
その他 無限ループの止め方(Eclipse使用時)

for文とは

for (1.値を初期化  ; 2.条件  ;  3.値を更新){
    実行される処理
}
  • 処理を繰り返す時に使用します。最初にforを書くのでfor文と呼ばれます。
  • 初期化は、最初に1回だけ実行されます。
  • 使用する変数をカウンター変数またはループ変数といいます。
    →変数名はiやjがよく使用されます。
  • 条件がtrueの間、処理を繰り返します。
  • 条件がfalseの場合、ループ処理を終了します。
  • 「3.値を更新」でカウンター変数/ループ変数の値が変わります。

for文のサンプル

  for (int i = 0; i < 3; i++) {
    System.out.println(i); // 0 1 2が出力される
  }

初期化式(int i = 0)によりiは0から始まります。iはカウンター変数と呼ばれます。
増減式(i++)によりiの値は、1ずつ増えていきます。
条件式(i <3)がtrueの間は処理を繰り返し、iが3になるとfalseになるので終了します。

配列の値を取得

  String[] color = {"赤","黄","青"}; // 配列

  for (int i = 0; i < color.length; i++) {
    System.out.println(color[i]); // 赤 黄 青が出力される
  }

3行目のlengthは、配列の長さを返します。
4行目は、変数と添字で配列の値を表示しています。配列の添字は0から始まります。

ループを抜ける(break)

  for (int i = 0; i < 3; i++) {
    if (i == 1) {
      break; 
    }
    System.out.println(i); // 0が出力される
  }

breakでループを抜けます。

2重ループでbreakを使用

  for (int i = 0; i < 2; i++) { 
    for (int j = 0; j < 2; j++) {
      if (j == 0) {
        break; 
      }
      System.out.println("j=" + j); //出力なし
    }
    System.out.println("i=" + i); // i=0 i=1が出力される
  }

for文が2つあり2重ループ(入れ子)になっています。
breakは、内側のfor文のみ抜けます。

2重ループを抜ける(ラベル)

ラベル: for(初期化式  ; 条件式  ;  増減式){
  break ラベル;
}

breakとラベルで2重ループを抜けるサンプルです。

  label1:for(int i = 0; i < 9; i++) { 
    for (int j = 0; j < 9; j++) {
      if (j == 3) {
        break label1; 
      }
      System.out.println(j); //0,1,2が出力される
    }
    System.out.println(i); // 出力なし
  }
  System.out.println("終了"); // 出力される

forがある2重ループです。label1はラベルです。
4行目のbreakとラベルで外側のfor文を抜けます。

ループの先頭に戻る(continue)

  for (int i = 0; i < 3; i++) {
    if (i == 1) {
      continue; 
    }
    System.out.println(i); // 0 2が出力される
  }

continueでループ処理の先頭に戻ります。(ブロックの先頭位置に戻ります)

2重ループでcontinueを使用

  for (int i = 0; i < 2; i++) { 
    for (int j = 0; j < 2; j++) {
      if (j == 0) {
        continue; 
      }
      System.out.println("j=" + j); //j=1 j=1が出力される
    }
    System.out.println("i=" + i); // i=0 i=1が出力される
  }

for文が2つあり2重ループ(入れ子)になっています。
4行目のcontinueは、内側のfor文の先頭の2行目に戻ります。

ループで加算しない(拡張for文)

for( データ型 変数1 : 配列やコレクションの変数2 ){
    実行される処理
}

上記for文との違いは、変数の値を加算する処理がありません。
配列やコレクションの要素を順番にアクセスします。

  int array[] = {1, 2, 3}; //配列

  for (int a: array){
    System.out.println(a); //1 2 3が出力される
  }

 

無限ループの止め方(Eclipse使用時)

Eclipse使用時に無限ループになった時は、「コンソール」タブにある四角の赤いアイコンを押します。(Eclipse 4.8)

関連の記事

Java if文 条件分岐を行うサンプル
Java switch文 条件分岐を行う
Java while文とdo…while文 処理を繰り返す
Java 拡張for文 配列やコレクションをループで取得

△上に戻る