Menu
Coddy logo textTech

Sentencias Etiquetadas

Parte de la sección Lógica y Flujo del Journey de Java de Coddy — lección 35 de 59.

Las sentencias de etiqueta en Java permiten marcar puntos específicos en tu código y controlar el flujo utilizando las sentencias break y continue con estas etiquetas. Las etiquetas son particularmente útiles al trabajar con bucles anidados.

Crea un bucle anidado con una etiqueta:

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

Usa continue con una etiqueta:

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

Desafío

Fácil

Crea un método llamado findNumber que toma tres argumentos:

  1. Un arreglo 2D de enteros (grid)
  2. Un entero (target) a buscar
  3. Un booleano (breakEarly) que determina si la búsqueda debe detenerse después de encontrar la primera ocurrencia El método debe usar un bucle etiquetado para buscar el número objetivo e imprimir cada posición donde se encuentra. Si breakEarly es true, debe detenerse después de encontrar la primera ocurrencia. Cada elemento encontrado debe imprimirse en el formato: Found at: rowIndex,colIndex

Hoja de referencia

Las declaraciones de etiquetas en Java te permiten marcar puntos específicos en tu código y controlar el flujo usando las sentencias break y continue con estas etiquetas.

Crea un bucle anidado con una etiqueta:

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

Usa continue con una etiqueta:

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

Pruébalo tú mismo

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) {
        // Escribe tu código aquí
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // Lee la cadena JSON que representa un arreglo 2D
        String gridString = scanner.nextLine();
        // Lee el número objetivo
        int target = Integer.parseInt(scanner.nextLine());
        // Lee la bandera 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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo