talosのプログラミング教室

Java Silver合格への道 ~ラベル~

スポンサーリンク

こんにちは。たろすです。

今回はラベルについてです。

ラベルの使い方

まず以下のコードを見てください。

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		for (int i = 0; i < 5; i++) {
			for (int j = 0; j < 5; j++) {
				System.out.println(i + " " + j);
				if (j == 3) {
					break;
				}
			}
		}
	}
}

二重ループがあり、内側のループの中でjが3と等しければbreakするような構造になっています。

そのためこのプログラムを実行すると、

0 0
0 1
0 2
0 3
1 0
1 1
1 2
1 3
2 0
2 1
2 2
2 3
3 0
3 1
3 2
3 3
4 0
4 1
4 2
4 3

と出力されます。

j(右側の列)が3になったろころで内側のループを抜けていることがわかります。


次に以下のコードを見てください。

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		a: for (int i = 0; i < 5; i++) {
			for (int j = 0; j < 5; j++) {
				System.out.println(i + " " + j);
				if (j == 3) {
					break a;
				}
			}
		}
	}
}

先程と異なるのは外側のforの左側に「a:」がついていることと、breakの右側に「a」がついていることです。

これをラベルと呼びます。

このプログラムを実行すると以下の出力が得られます。

0 0
0 1
0 2
0 3

jが3と等しくなったところで外側のループを抜けていることがわかります。

これはラベルを付けたことでbreakと外側のforを紐づけたからです。

このようにラベルを使うことでbreakするループを変えたりすることができます。

おわりに

今回はラベルについて説明しました。

goto文同様に可読性が落ちるため現場ではまず見ませんが、Java Silver勉強中は覚えておきましょう。