Menu
Coddy logo textTech

ラベル文

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);
   }
}
challenge icon

チャレンジ

簡単

findNumber という名前のメソッドを作成し、3 つの引数を受け取るようにしてください:

  1. 整数型の 2 次元配列 (grid)
  2. 検索する整数 (target)
  3. 最初に見つかった発生後に検索を停止するかどうかを決定するブール値 (breakEarly) メソッドは、ラベル付きループを使用してターゲット番号を検索し、見つかった各位置を出力します。breakEarly が true の場合、最初に見つかった後に停止します。各見つかった要素は、形式 Found at: rowIndex,colIndex で出力してください。

チートシート

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);
   }
}

自分で試してみよう

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);
        // 2D 配列を表す 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);
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン