Menu
Coddy logo textTech

Declarações Rotuladas

Parte da seção Lógica e Fluxo do Journey de Java da Coddy — lição 35 de 59.

As declarações de rótulo em Java permitem que você marque pontos específicos no seu código e controle o fluxo usando as instruções break e continue com esses rótulos. Os rótulos são particularmente úteis ao trabalhar com loops aninhados.

Crie um loop aninhado com um rótulo:

outer: for(int i = 0; i < 3; i++) {
   for(int j = 0; j < 3; j++) {
       if(i * j == 4) {
           break outer;
       }
   }
}

Use continue com um rótulo:

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

Desafio

Fácil

Crie um método chamado findNumber que recebe três argumentos:

  1. Um array 2D de inteiros (grid)
  2. Um inteiro (target) para encontrar
  3. Um booleano (breakEarly) que determina se a busca deve parar após encontrar a primeira ocorrência. O método deve usar um loop rotulado para buscar o número alvo e imprimir cada posição onde ele é encontrado. Se breakEarly for true, ele deve parar após encontrar a primeira ocorrência. Cada elemento encontrado deve ser impresso no formato: Found at: rowIndex,colIndex

Folha de consulta

Os rótulos em Java permitem que você marque pontos específicos no seu código e controle o fluxo usando as instruções break e continue com esses rótulos.

Crie um loop aninhado com um rótulo:

outer: for(int i = 0; i < 3; i++) {
   for(int j = 0; j < 3; j++) {
       if(i * j == 4) {
           break outer;
       }
   }
}

Use continue com um rótulo:

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

Experimente você mesmo

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) {
        // Escreva seu código aqui
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // Lê a string JSON representando um array 2D
        String gridString = scanner.nextLine();
        // Lê o número alvo
        int target = Integer.parseInt(scanner.nextLine());
        // Lê a flag 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 iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo