Kontrollfluss in Rust folgt einer durchgehenden Designentscheidung: fast alles ist eine Expression. if, match, loop, sogar Blöcke liefern Werte. Das ergibt einen Stil, in dem Bedingungen direkt an Bindungen gehängt werden, Schleifen Werte über break zurückgeben und Pattern-Matching keine getrennte Welt ist. Dazu kommen zwei weitere Schleifen-Konstrukte (while, for) und die Pattern-Shortcuts if let/let else, die häufige Match-Fälle elegant abkürzen. Dieses Kapitel führt durch jedes Konstrukt einzeln und zeigt, wie sie zu idiomatischem Rust-Code kombiniert werden.
Was dich erwartet
- if als Expression — warum
let x = if cond { a } else { b };idiomatisch ist und welche Typ-Regeln dahinter stehen. - loop mit Wert-Rückgabe — die einzige Schleife mit
break <wert>-Form. Endlos-Schleifen mit garantierter Termination perbreak. - while — Bedingungs-basierte Schleife. Plus die
while let-Variante für Pattern-getriebene Iteration. - for und Range — die idiomatische Iteration.
forarbeitet auf jedemIntoIterator, vonRangeüberVecbis zu eigenen Iteratoren. - break, continue, Labels — Schleifen vorzeitig beenden oder Iteration überspringen, mit Labels gezielt in verschachtelten Strukturen.
- if let und let else — Pattern-Matching ohne vollständiges
match. Der idiomatische Weg, einOptionoderResultpunktuell zu entpacken.
Was du nach diesem Kapitel kannst
- Bedingungen idiomatisch als Expressions schreiben, ohne
returnzu missbrauchen. - Schleifen wählen —
loopfür „bis ein Wert da ist",whilefür Bedingungen,forfür Sequenzen. - Verschachtelte Schleifen mit Labels gezielt steuern.
OptionundResultüberif letundlet elseelegant entpacken, ohne tiefe Verschachtelung.- Patterns wie Early-Return, Block-Initialisierung und expression-orientierte Schleifen einsetzen.
Das nächste Kapitel geht um Funktionen — Parameter, Rückgabe, Expression-vs-Statement-Regeln und divergierende Funktionen mit !-Return.