Boucles imbriquées et tableaux 2D
Fait partie de la section Logique & Flux du Journey C# de Coddy — leçon 4 sur 66.
Lorsqu'on travaille avec des tableaux 2D (tableaux déchiquetés) en C#, nous utilisons souvent des boucles imbriquées pour itérer sur chaque ligne et chaque colonne, ce qui nous permet d'accéder à chaque élément du tableau ou de le modifier.
Voici une structure typique de boucles imbriquées pour un tableau 2D en C# :
for (int i = 0; i < array.Length; i++) {
// La boucle externe itère sur les lignes
for (int j = 0; j < array[i].Length; j++) {
// La boucle interne itère sur les colonnes
// Accéder à ou modifier array[i][j]
}
}La boucle externe parcourt les lignes, et la boucle interne parcourt les colonnes de chaque ligne. De cette façon, vous pouvez accéder à chaque élément du tableau 2D en utilisant array[i][j].
Défi
FacileprintMatrix qui prend un tableau 2D (tableau décalé) d'entiers comme argument et affiche ses éléments sous forme de matrice. Utilisez des boucles imbriquées pour parcourir les lignes et les colonnes du tableau.Affichez chaque élément suivi d'un espace (y compris le dernier élément de chaque ligne), puis affichez un saut de ligne après chaque ligne. Par exemple, pour la ligne
[1, 2, 3], la sortie doit être 1 2 3 (avec un espace à la fin), suivie d'un saut de ligne.Aide-mémoire
Utilisez des boucles imbriquées pour parcourir des tableaux 2D (tableaux décalés ou "jagged arrays") en C# :
for (int i = 0; i < array.Length; i++) {
// La boucle externe parcourt les lignes
for (int j = 0; j < array[i].Length; j++) {
// La boucle interne parcourt les colonnes
// Accéder à ou modifier array[i][j]
}
}La boucle externe parcourt les lignes en utilisant array.Length, et la boucle interne parcourt les colonnes en utilisant array[i].Length. Accédez aux éléments avec array[i][j].
Essayez vous-même
// Écrivez votre code uniquement à l'intérieur de la classe. N'écrivez pas Main() ou tout autre code à l'extérieur de cette classe.
using System;
class PrintMatrix
{
public static void printMatrix(int[][] matrix)
{
// Écrivez votre code ici
}
}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 2DDéclaration et initialisation en 2DAccès aux éléments d'un tableau 2DBoucles imbriquées et tableaux 2DTableaux irréguliersOpérations matricielles courantesRécapitulatif - Multidimensionnel4Techniques de contrôle de flux
Retours anticipésClauses de gardeInstructions de saut (goto)Break et ContinueAplatir les conditionnelles imbriquées2Prise de décision avancée
Conditions multiplesLogique booléenne complexeComparaison If vs SwitchInstructions Switch imbriquéesRécapitulatif - Décisions avancées5Gestion des exceptions
Bases du Try-CatchTypes d'exceptionsBlocs Catch multiplesManipulation de fichiersLe bloc FinallyUsing vs Try-FinallyExceptions personnaliséesRécapitulatif - Gestion des erreurs3Améliorations des boucles
Performance des bouclesItération de structures complexesChaque type de boucleRefactorisation des bouclesRécapitulatif - Boucles optimisées6Gestion des valeurs nulles
Les bases des références nullesTypes valeur nullablesPatterns de vérification de nullitéProgrammation défensiveRécapitulatif - Null Safety