Verschachtelte Schleifen
Teil des Abschnitts Grundlagen der R-Journey von Coddy. Lektion 44 von 78.
Du kannst eine Schleife in eine andere Schleife setzen, um eine verschachtelte Schleife zu erstellen. Die innere Schleife wird bei jeder Iteration der äußeren Schleife vollständig ausgeführt. Das ist nützlich, wenn du mit Kombinationen oder gitterartigen Mustern arbeitest.
rows <- 3
cols <- 2
for (i in 1:rows) {
for (j in 1:cols) {
cat("i =", i, ", j =", j, "\n")
}
}Ausgabe:
i = 1 , j = 1
i = 1 , j = 2
i = 2 , j = 1
i = 2 , j = 2
i = 3 , j = 1
i = 3 , j = 2Für jeden Wert von i durchläuft die innere Schleife alle Werte von j. Wenn i 1 ist, läuft j von 1 bis 2. Dann wird i zu 2, und j beginnt erneut bei 1 und läuft wieder bis 2. rows und cols ändern sich nie: Sie geben den Schleifen nur an, wann sie stoppen sollen.
Ein praktisches Beispiel ist die Erstellung eines einfachen Multiplikationsmusters:
for (row in 1:3) {
for (col in 1:3) {
cat(row * col, " ")
}
cat("\n")
}Ausgabe:
1 2 3
2 4 6
3 6 9Die äußere Schleife steuert die Zeilen, während die innere Schleife jede Spalte innerhalb dieser Zeile verarbeitet. Nachdem jede Zeile abgeschlossen ist, geben wir einen Zeilenumbruch aus, um zur nächsten Zeile zu wechseln.
Aufgabe
EinfachLies zwei Zahlen aus der Eingabe ein: rows und cols.
Verwende verschachtelte Schleifen, um ein Rechteck aus Zahlen auszugeben, in dem jede Zelle die Summe ihrer Zeilennummer und Spaltennummer enthält. Die Zeilen sind von 1 bis rows und die Spalten von 1 bis cols nummeriert.
Gib jede Zeile in einer eigenen Zeile aus, wobei die Werte durch genau ein Leerzeichen getrennt sind. Verwende cat() für die Ausgabe und füge nach jeder Zeile einen Zeilenumbruch hinzu.
Wenn die Eingaben zum Beispiel 3 und 4 sind, sollte die Ausgabe so aussehen:
2 3 4 5
3 4 5 6
4 5 6 7In der ersten Zeile (Zeile 1) lauten die Werte 1+1=2, 1+2=3, 1+3=4, 1+4=5. In der zweiten Zeile (Zeile 2) lauten die Werte 2+1=3, 2+2=4, 2+3=5, 2+4=6 und so weiter.
cat() fügt zwischen den übergebenen Werten ein Leerzeichen ein, daher gibt cat(row + col, "") die Zahl gefolgt von genau einem Leerzeichen aus.
Verwende für jede Schleife einen neuen Zähler (zum Beispiel row für die Zeilen und col für die Zahlen in einer Zeile) und vergleiche ihn mit rows oder cols. Ändere rows und cols selbst nicht: Jede Zeile benötigt erneut cols.
Probier es selbst
# Eingabe lesen
con <- file("stdin", "r")
rows <- as.integer(suppressWarnings(readLines(con, n = 1)))
cols <- as.integer(suppressWarnings(readLines(con, n = 1)))
close(con)
# TODO: Schreibe deinen Code unten
# Verwende verschachtelte Schleifen, um ein Rechteck auszugeben, in dem jede Zelle row + column enthält
# Verwende cat(), um die Werte durch Leerzeichen getrennt auszugeben, mit einem Zeilenumbruch nach jeder ZeileDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 2
Logische Operatoren (AND, OR)Logische Operatoren Teil 2 (NOT)Wiederholung – einfache LogikVektorisierte Logik Teil 1Vektorisierte Logik Teil 27Rechner zum Teilen der Rechnung
BegrüßungsnachrichtBenutzereingaben erfassen10FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion13Fortgeschrittene Vektoren
Vektor-Slicing und -IndizierungLogische IndizierungVektorarithmetik & RecyclingDer %in%-Operator2Variablen und Datentypen
Numerischer DatentypGanzzahliger DatentypZeichen-DatentypLogischer DatentypDatentypen überprüfenNamenskonventionenFehlende Werte: NAZusammenfassung – Variablen erstellen5Entscheidungen treffen
If-AnweisungIf - ElseWiederholung – Einfacher TaschenrechnerVerschachteltes If - Else8Schleifen
For-SchleifeWhile-SchleifeBreakNext (Continue)Wiederholung – FakultätSequenzgenerierung (seq, :)Verschachtelte SchleifenWiederholung – Dynamische Eingabe3Operatoren Teil 1
Arithmetische OperatorenGanzzahldivision und ModuloZuweisungsoperatorenRückblick – Einfache MathematikVergleichsoperatoren6Grundlegende Ein- und Ausgabe
Ausgabe mit printcat zur AusgabeAusgabe mit VariablenEingaben mit readline() lesenGrundlagen der TypkonvertierungRückblick – AltersrechnerRückblick – Wahr oder falsch9Funktionen
Eine Funktion deklarierenFunktionsargumenteRückgabewerteWiederholung – Sigma-FunktionWiederholung – ValidierungsfunktionStandardparameterwerteÜbe selbstständig: Online-R-Compiler