Verschachtelte Schleifen
Teil des Abschnitts Grundlagen der Rust-Journey von Coddy. Lektion 41 von 75.
Eine verschachtelte Schleife ist einfach eine Schleife innerhalb einer anderen Schleife. Die innere Schleife durchläuft alle ihre Iterationen für jede einzelne Iteration der äußeren Schleife. Ein gutes Beispiel dafür ist eine Uhr: Für jede Stunde (äußere Schleife) muss der Minutenzeiger (innere Schleife) seinen vollständigen 60-Minuten-Zyklus durchlaufen.
Beispiel für eine verschachtelte Schleife:
let rows = 2;
let cols = 2;
for x in 0..rows {
for y in 0..cols {
println!("{} {}", x, y);
}
}
// Dies gibt Folgendes aus:
// 0 0
// 0 1
// 1 0
// 1 1Die äußere Schleife (x) wird rows-mal ausgeführt, und für jedes dieser Male wird die innere Schleife (y) cols-mal ausgeführt. Jede Schleife hat ihren eigenen Zähler: y beginnt jedes Mal wieder bei 0, wenn die äußere Schleife ausgeführt wird, während rows und cols gleich bleiben und den Schleifen nur sagen, wann sie aufhören sollen.
Aufgabe
AnfängerSchreibe ein Programm, das ein Rechteck aus Sternchen (*) mit einer vorgegebenen Breite und Höhe ausgibt.
Eingabe: Zwei Ganzzahlen: width und height (der Startcode liest sie bereits ein).
Zum Beispiel:
Wenn width = 5 und height = 3 sind, sollte die Ausgabe so aussehen:
*****
*****
*****Wenn width = 4 und height = 6 sind, sollte die Ausgabe so aussehen:
****
****
****
****
****
****Verwende für jede Schleife einen neuen Zähler (zum Beispiel i für die Zeilen und j für die Sternchen in einer Zeile) und vergleiche ihn mit height oder width. Ändere nicht height und width selbst: Jede Zeile benötigt erneut width.
Probier es selbst
use std::io;
fn main() {
let mut width_input = String::new();
let mut height_input = String::new();
io::stdin().read_line(&mut width_input).unwrap();
io::stdin().read_line(&mut height_input).unwrap();
let width: i32 = width_input.trim().parse().unwrap();
let height: i32 = height_input.trim().parse().unwrap();
// Schreibe deinen Code unten
}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-OperatorArithmetische AbkürzungenVergleichsoperatorenString-Vergleich7Grundlagen IO
Ausgabe in die KonsoleBenutzereingaben lesenWiederholung - Bis 120Wiederholung - Wahr oder Falsch5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung - Einfache LogikLogische Operatoren Teil 311Funktionen
Funktionen deklarierenParameter und ArgumenteRückgabewerteMehrere RückgabewerteWiederholung - Sigma-FunktionWiederholung - Validierungsfunktion14Iterieren über Arrays
Range-LeitfadenErweiterte For-SchleifeBorrowing in SchleifenGängige Array-Operationen3Variablen Teil 2
TypdeklarationNamenskonventionenTypinferenzRückblick - Variablen initialisierenTypumwandlung6Entscheidungsfindung
If-AusdrückeIf-ElseMatch-AnweisungZusammenfassung - If-ElseVerschachteltes If-Else9Schleifen
For-Schleife über SerienWhile-SchleifeBreakContinueVerschachtelte SchleifenSchleifen-LabelsEndlosschleifeRückblick – Dynamische EingabeÜbe selbstständig: Online-Rust-Compiler