Istruzioni con etichetta
Fa parte della sezione Logica e flusso del percorso Java di Coddy. Lezione 35 di 59.
Le istruzioni con etichetta in Java ti permettono di contrassegnare punti specifici nel codice e di controllare il flusso usando le istruzioni break e continue con queste etichette. Le etichette sono particolarmente utili quando lavori con cicli annidati.
Crea un ciclo annidato con un'etichetta:
outer: for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
if(i * j == 4) {
break outer;
}
}
}Usa continue con un'etichetta:
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);
}
}Sfida
FacileCrea un metodo chiamato findNumber che accetta tre argomenti:
- Un array 2D di interi (
grid) - Un intero (
target) da trovare - Un valore booleano (
breakEarly) che determina se la ricerca deve interrompersi dopo aver trovato la prima occorrenza. Il metodo deve usare un ciclo con etichetta per cercare il numero target e stampare ogni posizione in cui viene trovato. Se breakEarly è true, deve interrompersi dopo aver trovato la prima occorrenza. Ogni elemento trovato deve essere stampato nel formato:Found at: rowIndex,colIndex
Provalo tu
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) {
// Scrivi qui il tuo codice
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Leggi la stringa JSON che rappresenta un array 2D
String gridString = scanner.nextLine();
// Leggi il numero da cercare
int target = Integer.parseInt(scanner.nextLine());
// Leggi il 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);
}
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Array multidimensionali
Concetti di base degli array 2DAccesso agli elementi degli array 2DCicli annidati con array 2DRiepilogo - Array 2DAddizione e sottrazione di matriciArray irregolariArray 3D e oltreSchemi comuni degli array 2DRiepilogo - Tutto sugli array4HashSet Parte 1
Che cos'è un HashSet?Aggiungere un elementoRimuovere un elementoVerificare se un elemento esisteVuoto e dimensioneSvuotare e clonareRipasso - HashSet7Gestione di base degli errori
Nozioni di base su try-catchBlocco finallyLancio di eccezioniEccezioni personalizzate2HashMap Parte 1
Che cos'è una HashMap?Dichiarare una HashMapAccedere ai valoriVerificare se una chiave esisteModificare i dizionariRiepilogo - HashMap3HashMap Parte 2
Metodi di HashMapIterare con keySet()Iterare con entrySet()HashMap annidateRiepilogo - Gestire il magazzinoRiepilogo - Operazioni con HashMap6Flusso di controllo avanzato
Istruzioni con etichettaEspressione switchCorrispondenza dei patternClausole guardiaRiepilogo - Flusso di controllo9Progetto - Contatore di parole uniche
Inserimento e memorizzazione del testoElaborazione delle paroleEsercitati da solo: Compilatore Java online