Instructions étiquetées
Fait partie de la section Logique & Flux du Journey Java de Coddy — leçon 35 sur 59.
Les instructions étiquetées en Java permettent de marquer des points spécifiques dans votre code et de contrôler le flux à l'aide des instructions break et continue avec ces étiquettes. Les étiquettes sont particulièrement utiles lors du travail avec des boucles imbriquées.
Créez une boucle imbriquée avec une étiquette :
outer: for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
if(i * j == 4) {
break outer;
}
}
}Utiliser continue avec une étiquette :
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);
}
}Défi
FacileCréez une méthode nommée findNumber qui prend trois arguments :
- Un tableau 2D d'entiers (
grid) - Un entier (
target) à trouver - Un booléen (
breakEarly) qui détermine si la recherche doit s'arrêter après avoir trouvé la première occurrence. La méthode doit utiliser une boucle étiquetée pour rechercher le nombre cible et imprimer chaque position où il est trouvé. Si breakEarly est true, elle doit s'arrêter après avoir trouvé la première occurrence. Chaque élément trouvé doit être imprimé au format :Found at: rowIndex,colIndex
Aide-mémoire
Les étiquettes en Java permettent de marquer des points spécifiques dans votre code et de contrôler le flux à l'aide des instructions break et continue avec ces étiquettes.
Créez une boucle imbriquée avec une étiquette :
outer: for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
if(i * j == 4) {
break outer;
}
}
}Utilisez continue avec une étiquette :
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);
}
}Essayez vous-même
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) {
// Écrivez votre code ici
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Lire la chaîne JSON représentant un tableau 2D
String gridString = scanner.nextLine();
// Lire le nombre cible
int target = Integer.parseInt(scanner.nextLine());
// Lire le drapeau breakEarly
boolean breakEarly = Boolean.parseBoolean(scanner.nextLine());
Type gridType = new TypeToken<int[][]>(){}.getType();
int[][] grid = new Gson().fromJson(gridString, gridType);
findNumber(grid, target, breakEarly);
}
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Tableaux multidimensionnels
Bases des tableaux 2DAccès aux éléments des tableaux 2DBoucles imbriquées avec les tableaux 2DRécapitulatif - Tableaux 2DAddition et soustraction de matricesTableaux irréguliersTableaux 3D et au-delàMotifs courants des tableaux 2DRécapitulatif - Tout sur les tableaux4HashSet Partie 1
Qu'est-ce qu'un HashSet ?Ajouter un ÉlémentSupprimer un ÉlémentVérifier si un Élément ExisteVide et TailleVider et ClonerRécapitulatif - HashSet7Gestion des erreurs de base
Bases du try-catchBloc finallyLever des exceptionsExceptions personnalisées2HashMap Partie 1
Qu'est-ce qu'une HashMap ?Déclarer une HashMapAccéder aux ValeursVérifier si une Clé ExisteModifier les DictionnairesRécapitulatif - HashMap3HashMap Partie 2
Méthodes HashMapItérer avec keySet()Itérer avec entrySet()HashMap imbriquéRécapitulatif - Gérer l'entrepôtRécapitulatif - Opérations HashMap6Flux de contrôle avancé
Instructions étiquetéesExpression switchAppariement de motifsClauses de gardeRécapitulatif - Flux de contrôle9Projet - Compteur de Mots Uniques
Entrée de Texte et StockageTraitement des Mots