Boucle imbriquée
Fait partie de la section Fondamentaux du Journey Kotlin de Coddy. Leçon 52 sur 93.
Vous pouvez placer une boucle à l’intérieur d’une autre boucle pour créer une boucle imbriquée. La boucle interne s’exécute entièrement à chaque itération de la boucle externe.
for (i in 1..2) {
for (j in 1..3) {
println("i=$i, j=$j")
}
}
// Sortie :
// i=1, j=1
// i=1, j=2
// i=1, j=3
// i=2, j=1
// i=2, j=2
// i=2, j=3Lorsque i vaut 1, la boucle interne s’exécute trois fois (j va de 1 à 3). Ensuite, i devient 2, et la boucle interne s’exécute encore trois fois. Cela nous donne 2 × 3 = 6 itérations au total.
Les boucles imbriquées sont couramment utilisées pour créer des motifs ou travailler avec des structures en forme de grille :
for (row in 1..3) {
for (col in 1..row) {
print("*")
}
println()
}
// Sortie :
// *
// **
// ***Ici, la plage de la boucle interne dépend de la variable de la boucle externe, ce qui crée un motif triangulaire. La fonction print() affiche sans saut de ligne, tandis que println() passe à la ligne suivante après chaque ligne.
Défi
MoyenLisez un entier n depuis l’entrée. Utilisez des boucles imbriquées pour afficher une table de multiplication des nombres de 1 à n.
Pour chaque ligne i de 1 à n, affichez les produits i * 1, i * 2, ..., i * n séparés par des espaces, suivis d’un saut de ligne.
Par exemple, si l’entrée est 3, la sortie doit être :
1 2 3
2 4 6
3 6 9Si l’entrée est 4, la sortie doit être :
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16Utilisez print() avec un espace pour afficher les valeurs sur la même ligne, et println() pour passer à la ligne suivante.
Essayez vous-même
fun main() {
// Lire l'entrée
val n = readLine()!!.toInt()
// TODO: Écrivez votre code ci-dessous
// Utilisez des boucles imbriquées pour afficher la table de multiplication
// Utilisez print() avec un espace pour les valeurs sur la même ligne
// Utilisez println() pour passer à la ligne suivante
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs, partie 1
Opérateurs arithmétiquesOpérateur moduloAffectation augmentéeOpérateurs de comparaisonRécapitulatif - Mathématiques simples7E/S de base
Fonction PrintlnModèles de chaînesEntrée ReadLineConversion de typeRécapitulatif - Années avant la retraiteRécapitulatif - Vrai ou faux10Fonctions
Déclarer une fonctionParamètres et argumentsValeurs de retourArguments nommésValeurs par défautFonctions à expression uniqueRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validation2Variables
Val ou VarInférence de typeNombresChaîne de caractèresBooléenConventions de nommageRécapitulatif - Initialiser des variables5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Opérateurs logiques, partie 3Ternaire avec une expression ifRécapitulatif - Logique simple8Calculateur de partage d’addition
Message de bienvenueSaisie des données11FizzBuzz avec une variante
Aperçu du jeuLa fonction FizzBuzz3Nullabilité
Qu’est-ce que la sécurité vis-à-vis de nullTypes nullableOpérateur d’appel sécuriséOpérateur ElvisBases des défis de fonctionsAssertion de non-nullitéRécapitulatif - Accès sécurisé6Prise de décision
Instruction IfIf - ElseIf comme expressionExpression WhenWhen avec des plagesRécapitulatif - Calculatrice simple9Boucles
Boucle ForBoucle WhileBoucle Do-WhileBreakContinuePlages dans les bouclesBoucle imbriquéeRécapitulatif - FactorielleRécapitulatif - Entrée dynamiqueEntraînez-vous par vous-même : Playground Kotlin