ラベル文
CoddyのJavaジャーニー「ロジックとフロー」セクションの一部 — レッスン 35/59。
Javaのラベル文を使用すると、コード内の特定のポイントをマークし、これらのラベルと共に break 文や continue 文を使用してフローを制御することができます。ラベルは、特にネストされたループを扱う際に非常に便利です。
ラベルを使用してネストされたループを作成します:
outer: for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
if(i * j == 4) {
break outer;
}
}
}ラベル付きの continue を使用します:
firstLoop: for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
if(j == 1) {
continue firstLoop;
}
System.out.println(i + "," + j);
}
}チャレンジ
簡単3つの引数を受け取る findNumber という名前のメソッドを作成してください:
- 整数の2次元配列 (
grid) - 検索対象の整数 (
target) - 最初に見つかった時点で検索を停止するかどうかを決定する真偽値 (
breakEarly) このメソッドは、ラベル付きループを使用してターゲットの数値を検索し、それが見つかった各位置を出力する必要があります。もし breakEarly が true の場合、最初に見つかった時点で停止する必要があります。見つかった各要素は、次の形式で出力してください:Found at: rowIndex,colIndex
自分で試してみよう
import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
public class Main {
public static void findNumber(int[][] grid, int target, boolean breakEarly) {
// ここにコードを記述してください
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 2次元配列を表すJSON文字列を読み取ります
String gridString = scanner.nextLine();
// ターゲットとなる数値を読み取ります
int target = Integer.parseInt(scanner.nextLine());
// `breakEarly` フラグを読み取ります
boolean breakEarly = Boolean.parseBoolean(scanner.nextLine());
Type gridType = new TypeToken<int[][]>(){}.getType();
int[][] grid = new Gson().fromJson(gridString, gridType);
findNumber(grid, target, breakEarly);
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。