Menu
Coddy logo textTech

Операторы меток

Часть раздела Логика и управление потоком путешествия по Java на Coddy — урок 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, который принимает три аргумента:

  1. Двумерный массив целых чисел (grid)
  2. Целое число (target) для поиска
  3. Булево значение (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);
        // Чтение строки 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Проверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком