Verschachtelte Schleifen
Teil des Abschnitts Grundlagen der R-Journey von Coddy — Lektion 44 von 78.
Sie können eine Schleife innerhalb einer anderen Schleife platzieren, um eine verschachtelte Schleife zu erstellen. Die innere Schleife wird für jede Iteration der äußeren Schleife vollständig durchlaufen, was nützlich ist, wenn man mit Kombinationen oder gitterartigen Mustern arbeitet.
for (i in 1:3) {
for (j in 1:2) {
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, geht j von 1 bis 2. Dann wird i zu 2, und j beginnt wieder von vorne von 1 bis 2.
Ein praktisches Beispiel ist das Erstellen 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 springen.
Aufgabe
EinfachLies zwei Zahlen aus der Eingabe: rows und cols.
Verwende verschachtelte Schleifen, um ein Rechteck aus Zahlen auszugeben, bei dem jede Zelle die Summe ihrer Zeilennummer und Spaltennummer enthält. Die Zeilen sind von 1 bis rows nummeriert, und die Spalten sind von 1 bis cols nummeriert.
Gib jede Zeile in einer eigenen Zeile aus, wobei die Werte durch ein einzelnes 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 wie folgt aussehen:
2 3 4 5
3 4 5 6
4 5 6 7In der ersten Zeile (Zeile 1) sind die Werte 1+1=2, 1+2=3, 1+3=4, 1+4=5. In der zweiten Zeile (Zeile 2) sind die Werte 2+1=3, 2+2=4, 2+3=5, 2+4=6, und so weiter.
Spickzettel
Eine geschachtelte Schleife (nested loop) ist eine Schleife, die sich innerhalb einer anderen Schleife befindet. Die innere Schleife wird für jede Iteration der äußeren Schleife vollständig durchlaufen.
for (i in 1:3) {
for (j in 1:2) {
cat("i =", i, ", j =", j, "\n")
}
}Für jeden Wert von i durchläuft die innere Schleife alle Werte von j.
Beispiel zur Erstellung eines Multiplikationsmusters:
for (row in 1:3) {
for (col in 1:3) {
cat(row * col, " ")
}
cat("\n")
}Die äußere Schleife steuert die Zeilen, während die innere Schleife jede Spalte innerhalb dieser Zeile verarbeitet. Verwenden Sie cat("\n"), um nach Abschluss jeder Zeile einen Zeilenumbruch auszugeben.
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: Schreiben Sie Ihren Code unten
# Verwenden Sie verschachtelte Schleifen, um ein Rechteck auszugeben, bei dem jede Zelle Zeile + Spalte enthält
# Verwenden Sie cat(), um Werte getrennt durch Leerzeichen 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 27Rechnungs-Split-Rechner
WillkommensnachrichtBenutzereingaben abfragen10FizzBuzz mit einer Besonderheit
SpielübersichtDie FizzBuzz-Funktion13Vektoren für Fortgeschrittene
Vektor-Slicing und IndizierungLogische IndizierungVektorarithmetik & RecyclingDer %in%-Operator2Variablen und Datentypen
Numerischer DatentypGanzzahl-DatentypZeichen-DatentypLogischer DatentypDatentypen prüfenBenennungskonventionenFehlende Werte: NAZusammenfassung – Variablenerstellung5Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher TaschenrechnerVerschachteltes If - Else8Schleifen
For-SchleifeWhile-SchleifeBreakNext (Continue)Rückblick - FakultätSequenzgenerierung (seq, :)Verschachtelte SchleifenRückblick - Dynamische Eingabe3Operatoren Teil 1
Arithmetische OperatorenGanzzahlige Division und ModuloZuweisungsoperatorenWiederholung - Einfache MathematikVergleichsoperatoren6Grundlagen der Ein- und Ausgabe
Print-AusgabeCat zur AusgabeAusgabe mit VariablenEingabe lesen mit readline()Grundlagen der TypumwandlungWiederholung – AltersrechnerWiederholung – Wahr oder Falsch9Funktionen
Funktionen deklarierenFunktionsargumenteRückgabewerteWiederholung - Sigma-FunktionWiederholung - ValidierungsfunktionStandard-Parameterwerte