Operator modulo
Część sekcji Podstawy ścieżki Rust w Coddy. Lekcja 16 z 75.
Operator modulo % zwraca resztę z dzielenia. W Rust używa się go w prostej składni:
let result = dividend % divisor;- dzielna: Liczba, która jest dzielona.
- dzielnik: Liczba, przez którą dzielona jest dzielna.
- wynik: Reszta z dzielenia.
Na przykład:
let result = 10 % 3;Tutaj 10 jest dzielone przez 3. 3 mieści się w 10 trzy razy, z resztą 1. Zatem result będzie równe 1.
Jeśli dzielna jest mniejsza od dzielnika, dzielnik mieści się zero razy, więc resztą jest sama dzielna: 2 % 9 to 2.
Zwykle modulo służy do sprawdzania, czy liczba jest parzysta, czy nieparzysta:
- Jeśli liczba jest parzysta, dzielenie jej przez 2 pozostawi resztę równą 0.
- Jeśli liczba jest nieparzysta, dzielenie jej przez 2 pozostawi resztę równą 1 lub -1, jeśli liczba jest ujemna.
Przy używaniu modulo z liczbami zmiennoprzecinkowymi (f64) działa ono podobnie jak w przypadku liczb całkowitych, a reszta może mieć część dziesiętną. Na przykład:
let result: f64 = 5.2 % 2.0;
// result wynosi około 1.2Oto jak to działa: 2.0 mieści się w 5.2 dwa razy (4.0), a reszta wynosi 1.2 (5.2 - 4.0 = 1.2). Typ f64 nie może dokładnie przechować wartości 5.2, więc wyświetlenie result pokazuje 1.2000000000000002.
Kolejny przykład:
let result: f64 = 7.8 % 3.5;
// result wynosi około 0.8 (wypisuje 0.7999999999999998)Wyzwanie
PoczątkującyNapisz kod, który zainicjuje trzy zmienne: a (i32), b (f64) i c (i32) wartościami 9, 2.6 i 11 (odpowiednio).
Następnie zainicjuj następujące zmienne:
d (i32), która będzie przechowywać wynik obliczenia reszty z dzieleniaaprzez2e (i32), która będzie przechowywać wynik obliczenia reszty z dzieleniaaprzez3f (f64), która będzie przechowywać wynik obliczenia reszty z dzieleniabprzez1.5g (f64), która będzie przechowywać wynik obliczenia reszty z dzieleniabprzez3.9h (i32), która będzie przechowywać wynik obliczenia reszty z dzieleniacprzez10
Sprawdź wynik i zobacz, jak różne dzielne i dzielniki wpływają na wynik.
Spróbuj swoich sił
fn main() {
// Wpisz swój kod poniżej
// Nie zmieniaj poniższej linijki
println!("a = {}", a);
println!("b = {}", b);
println!("c = {}", c);
println!("d = {}", d);
println!("e = {}", e);
println!("f = {}", f);
println!("g = {}", g);
println!("h = {}", h);
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory, część 1
Operatory arytmetyczneOperator moduloSkrócone operacje arytmetyczneOperatory porównaniaPorównywanie ciągów znaków7Podstawowe wejście i wyjście
Wyświetlanie w konsoliOdczytywanie danych od użytkownikaPowtórka – do 120Powtórka – prawda czy fałsz5Operatory, część 2
Operatory logiczne, część 1Operatory logiczne, część 2Powtórka — prosta logikaOperatory logiczne, część 311Funkcje
Deklarowanie funkcjiParametry i argumentyWartości zwracaneWiele wartości zwracanychPowtórka – funkcja SigmaPowtórka – funkcja walidująca14Iterowanie po tablicach
Przewodnik po zakresachUlepszona pętla forPożyczanie w pętliTypowe operacje na tablicach3Zmienne – część 2
Deklarowanie typuKonwencje nazewnictwaWnioskowanie o typiePodsumowanie – inicjalizacja zmiennychRzutowanie typów9Pętle
Pętla for dla sekwencjiPętla whileInstrukcja breakInstrukcja continuePętle zagnieżdżoneEtykiety pętliPętla nieskończonaPodsumowanie — dynamiczne dane wejściowe12Podstawy tablic
Deklarowanie tablicTablica jako parametrDostęp do elementówModyfikowanie tablicPodsumowanie — czytelny wydruk tablicy15Operacje na ciągach znaków
Metody ciągów znakówMakro format!Konwersja ciągów znakówPowtórka — formatowaniePoćwicz samodzielnie: Kompilator Rust online