Bedingte Anweisungen in Rust

RustRustBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen wir, wie if-else-Anweisungen in Rust verwendet werden. Ähnlich wie in anderen Programmiersprachen erfordern if-else-Anweisungen in Rust keine Klammern um die Bedingung, und jeder Bedingung folgt ein Codeblock. Diese bedingten Anweisungen sind Ausdrücke, sodass alle Zweige den gleichen Typ zurückgeben müssen. Innerhalb des bereitgestellten Codebeispiels überprüfen wir zunächst, ob die Variable n kleiner als 0 ist, und wenn ja, drucken wir, dass n negativ ist. Wenn n nicht kleiner als 0 ist, überprüfen wir dann, ob es größer als 0 ist und drucken, dass n positiv ist. Schließlich, wenn keine der vorherigen Bedingungen zutrifft, drucken wir, dass n null ist. Ein weiteres Beispiel zeigt, wie die if-else-Anweisung als Ausdruck verwendet werden kann, um einem neuen Wert der Variable big_n zuzuweisen. Wenn n zwischen -10 und 10 liegt, druckt es, dass n eine kleine Zahl ist und weist 10 * n an big_n zu. Andernfalls druckt es, dass n eine große Zahl ist und weist n / 2 an big_n zu. Die endgültigen Ausgaben von n und big_n werden am Ende gedruckt.

Hinweis: Wenn das Lab keinen Dateinamen angibt, können Sie einen beliebigen Dateinamen verwenden. Beispielsweise können Sie main.rs verwenden, es mit rustc main.rs &&./main kompilieren und ausführen.

if/else

Das Verzweigen mit if-else ähnelt anderen Sprachen. Anders als viele davon muss die boolesche Bedingung nicht in Klammern eingeschlossen sein, und jeder Bedingung folgt ein Block. if-else-Bedingungen sind Ausdrücke, und alle Zweige müssen den gleichen Typ zurückgeben.

fn main() {
    let n = 5;

    if n < 0 {
        print!("{} ist negativ", n);
    } else if n > 0 {
        print!("{} ist positiv", n);
    } else {
        print!("{} ist null", n);
    }

    let big_n =
        if n < 10 && n > -10 {
            println!(", und ist eine kleine Zahl, zehnfach vergrößern");

            // Dieser Ausdruck gibt einen `i32` zurück.
            10 * n
        } else {
            println!(", und ist eine große Zahl, die Zahl halbieren");

            // Dieser Ausdruck muss ebenfalls einen `i32` zurückgeben.
            n / 2
            // TODO ^ Versuchen Sie, diesen Ausdruck mit einem Semikolon zu unterdrücken.
        };
    //   ^ Vergessen Sie nicht, hier ein Semikolon zu setzen! Alle `let`-Bindungen brauchen es.

    println!("{} -> {}", n, big_n);
}

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das If/Else-Lab abgeschlossen. Sie können in LabEx weitere Labs ausprobieren, um Ihre Fähigkeiten zu verbessern.