Java for文のサンプル(break/continue/ラベル)

Javaのfor文のサンプルです。処理を繰り返す時に使用します。

目次

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

for文

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

for文のサンプル

package test1;

public class Test1 {
    public static void main(String[] args) {
    
        for (int i = 0; i < 3; i++) {
            System.out.println(i); // 0 1 2が出力される
        }
    }
}

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

For文で配列の値を取得する

package test1;

public class Test1 {
	public static void main(String[] args) {
        String[] color = {"赤","黄","青"}; // 配列

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

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

ループを抜ける(break)

breakでループを抜けるサンプルです。

package test1;

public class Test1 {
    public static void main(String[] args) {
    
        for (int i = 0; i < 3; i++) {
            if (i == 1) {
                break; 
            }
            System.out.println(i); // 0が出力される
        }
    }
}

8行目のbreakでfor文を抜けます。
10行目は、0のみ出力されます。

2重ループでbreakを使用

package test1;

public class Test1 {
    public static void main(String[] args) {
    
        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が出力される
        }
    }
} 

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

breakでラベルを使用

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

for文のbreakでラベルを使用するサンプルです。

package test1;

public class Test1 {
    public static void main(String[] args) {
    
        label1:for(int i = 0; i < 2; i++) { 
            for (int j = 0; j < 2; j++) {
                if (j == 0) {
                    break label1; 
                }
                System.out.println("j=" + j); //出力なし
            }
            System.out.println("i=" + i); // 出力なし
        }
    }
} 

6,9行目にラベル「label1」を追加しています。
9行目のラベルから6行目のラベルに飛びループを抜けるので出力なしになります。

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

continueでループの先頭に戻るサンプルです。

package test1;

public class Test1 {
    public static void main(String[] args) {
    
        for (int i = 0; i < 3; i++) {
            if (i == 1) {
                continue; 
            }
            System.out.println(i); // 0 2が出力される
        }
    }
}

8行目のcontinueでループ処理の先頭の6行目に戻ります。
10行目は、0と2が出力されます。

2重ループでcontinueを使用

package test1;

public class Test1 {
    public static void main(String[] args) {
    
        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が出力される
        }
    }
} 

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

continueでラベルを使用

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

for文のcontinueでラベルを使用するサンプルです。

package test1;

public class Test1 {
    public static void main(String[] args) {
    
        label1:for (int i = 0; i < 2; i++) { 
            for (int j = 0; j < 2; j++) {
                if (j == 0) {
                    continue label1; 
                }
                System.out.println("j=" + j); //出力なし
            }
            System.out.println("i=" + i); // 出力なし
        }
    }
} 

6,9行目にラベル「label1」を追加しています。
9行目のラベルから6行目のラベルに戻るので出力なしになります。

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

for( データ型 変数1 : 配列やコレクションの変数2 ){
    実行される処理
}
  • 上記for文との違いは、変数の値を加算する処理がありません。
  • 配列やコレクションの要素を順番にアクセスします。
  • 拡張for文と呼ばれます。Java 1.5で追加されました。

拡張for文のサンプルです。

package test1;

public class Test1 {
	public static void main(String[] args) {
		int array[] = {1, 2, 3};

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

5行目は、配列です。
7行目は、for文で配列の全ての要素にアクセスします。カウンター変数を使用していません。

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

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

関連の記事

Java if文のサンプル
Java switch文のサンプル
Java while文とdo...while文のサンプル
Java 拡張for文のサンプル(break/continue)

△上に戻る