Modulo-Operator
Teil des Abschnitts Grundlagen der Rust-Journey von Coddy. Lektion 16 von 75.
Der Modulo-Operator % gibt den Rest einer Division zurück. In Rust wird er mit einer einfachen Syntax verwendet:
let result = dividend % divisor;- Dividend: Die Zahl, die geteilt wird.
- Divisor: Die Zahl, durch die der Dividend geteilt wird.
- Rest: Der Rest der Division.
Zum Beispiel:
let result = 10 % 3;Hier wird 10 durch 3 geteilt. 3 passt dreimal in 10, mit einem Rest von 1. Daher ist result gleich 1.
Wenn der Dividend kleiner als der Divisor ist, passt der Divisor nullmal hinein, sodass der Rest dem Dividenden selbst entspricht: 2 % 9 ist 2.
Der Modulo-Operator wird häufig verwendet, um zu prüfen, ob eine Zahl gerade oder ungerade ist:
- Ist eine Zahl gerade, bleibt beim Teilen durch 2 ein Rest von 0.
- Ist eine Zahl ungerade, bleibt beim Teilen durch 2 ein Rest von 1 oder -1, wenn die Zahl negativ ist.
Bei der Verwendung des Modulo-Operators mit Gleitkommazahlen (f64) funktioniert er ähnlich wie bei Ganzzahlen, und der Rest kann einen Dezimalanteil haben. Zum Beispiel:
let result: f64 = 5.2 % 2.0;
// result ist ungefähr 1.2So funktioniert es: 2.0 passt zweimal in 5.2 (4.0), und der Rest ist 1.2 (5.2 - 4.0 = 1.2). Ein f64 kann 5.2 nicht exakt speichern, daher zeigt die Ausgabe von result 1.2000000000000002.
Ein weiteres Beispiel:
let result: f64 = 7.8 % 3.5;
// result ist ungefähr 0.8 (gibt 0.7999999999999998 aus)Aufgabe
AnfängerSchreibe Code, der drei Variablen, a (i32), b (f64) und c (i32), mit den Werten 9, 2.6 und 11 (in dieser Reihenfolge) initialisiert.
Initialisiere anschließend die folgenden Variablen:
d (i32), das das Ergebnis vonamodulo2enthälte (i32), das das Ergebnis vonamodulo3enthältf (f64), das das Ergebnis vonbmodulo1.5enthältg (f64), das das Ergebnis vonbmodulo3.9enthälth (i32), das das Ergebnis voncmodulo10enthält
Sieh dir das Ergebnis an und beobachte, wie unterschiedliche Dividenden und Divisoren das Ergebnis beeinflussen.
Probier es selbst
fn main() {
// Gib deinen Code unten ein
// Ändere die Zeile darunter nicht
println!("a = {}", a);
println!("b = {}", b);
println!("c = {}", c);
println!("d = {}", d);
println!("e = {}", e);
println!("f = {}", f);
println!("g = {}", g);
println!("h = {}", h);
}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