Verschachtelte Schleife
Teil des Abschnitts Grundlagen der Kotlin-Journey von Coddy. Lektion 52 von 93.
Du kannst eine Schleife in eine andere Schleife einfügen, um eine verschachtelte Schleife zu erstellen. Die innere Schleife wird bei jeder Iteration der äußeren Schleife vollständig durchlaufen.
val rows = 2
val cols = 3
for (i in 1..rows) {
for (j in 1..cols) {
println("i=$i, j=$j")
}
}
// Ausgabe:
// i=1, j=1
// i=1, j=2
// i=1, j=3
// i=2, j=1
// i=2, j=2
// i=2, j=3Wenn i 1 ist, wird die innere Schleife cols Mal ausgeführt (j läuft von 1 bis 3). Dann wird i zu 2, und die innere Schleife beginnt erneut, wobei j wieder von 1 bis 3 läuft. Das ergibt insgesamt 2 × 3 = 6 Iterationen. rows und cols ändern sich nie: Sie geben den Schleifen nur an, wann sie anhalten sollen.
Verschachtelte Schleifen werden häufig verwendet, um Muster zu erstellen oder mit rasterartigen Strukturen zu arbeiten:
for (row in 1..3) {
for (col in 1..row) {
print("*")
}
println()
}
// Ausgabe:
// *
// **
// ***Hier hängt der Bereich der inneren Schleife von der Variablen der äußeren Schleife ab, wodurch ein Dreiecksmuster entsteht. Die Funktion print() gibt die Ausgabe ohne Zeilenumbruch aus, während println() nach jeder Zeile zur nächsten Zeile wechselt.
Aufgabe
MittelLies eine ganze Zahl n aus der Eingabe. Verwende verschachtelte Schleifen, um eine Multiplikationstabelle für die Zahlen von 1 bis n auszugeben.
Gib für jede Zeile i von 1 bis n die Produkte i * 1, i * 2, ..., i * n durch Leerzeichen getrennt und gefolgt von einem Zeilenumbruch aus.
Wenn die Eingabe beispielsweise 3 ist, sollte die Ausgabe lauten:
1 2 3
2 4 6
3 6 9Wenn die Eingabe 4 ist, sollte die Ausgabe lauten:
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16Verwende print() mit einem Leerzeichen, um Werte in derselben Zeile auszugeben, und println(), um zur nächsten Zeile zu wechseln.
Verwende für jede Schleife einen neuen Zähler (zum Beispiel i für die Zeilen und j für die Spalten) und vergleiche beide mit n. Ändere n selbst nicht: Du brauchst es erneut für jede Zeile.
Probier es selbst
fun main() {
// Eingabe einlesen
val n = readLine()!!.toInt()
// TODO: Schreibe deinen Code unten
// Verwende verschachtelte Schleifen, um die Multiplikationstabelle auszugeben
// Verwende print() mit einem Leerzeichen, um Werte in derselben Zeile auszugeben
// Verwende println(), um zur nächsten Zeile zu wechseln
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorErweiterte ZuweisungVergleichsoperatorenRückblick – Einfache Mathematik7Grundlegende Ein-/Ausgabe
println-FunktionString-VorlagenReadLine-EingabeTypkonvertierungWiederholung – Jahre bis zur RenteWiederholung – Wahr oder falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteBenannte ArgumenteStandardwerteFunktionen mit einem AusdruckRückblick – Sigma-FunktionRückblick – Validierungsfunktion2Variablen
Val vs VarTypinferenzZahlenStringBooleanNamenskonventionenRückblick – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Logische Operatoren Teil 3Ternär mit If-AusdruckWiederholung – Einfache Logik8Rechner zum Aufteilen der Rechnung
WillkommensnachrichtEingaben erfassen11FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion3Nullbarkeit
Was ist Null-Sicherheit?Nullable-TypenOperator für sicheren AufrufElvis-OperatorGrundlagen der FunktionsaufgabeAssertion auf Nicht-NullRückblick – Sicherer Zugriff6Entscheidungen treffen
If-AnweisungIf - ElseIf als AusdruckWhen-AusdruckWhen mit BereichenRückblick - Einfacher Taschenrechner9Schleifen
For-SchleifeWhile-SchleifeDo-While-SchleifeBreakContinueBereiche in SchleifenVerschachtelte SchleifeRückblick – FakultätRückblick – Dynamische EingabeÜbe selbstständig: Kotlin-Playground