Operator modulo
Część sekcji Podstawy ścieżki Java w Coddy. Lekcja 16 z 73.
Operator modulo % zwraca resztę z dzielenia. W Javie używa się go w prostej składni:
result = dividend % divisor;- dividend: Liczba, którą dzielimy.
- divisor: Liczba, przez którą dzielimy dividend.
- result: Reszta z dzielenia.
Na przykład:
result = 10 % 3;Tutaj 10 jest dzielone przez 3. 3 mieści się w 10 trzy razy, a reszta wynosi 1. Zatem result będzie równe 1.
A co, jeśli dzielna jest mniejsza od dzielnika? W takim przypadku dzielnik mieści się w niej 0 razy, więc reszta jest po prostu równa samej dzielnej. Na przykład 2 % 3 jest równe 2, ponieważ 3 mieści się w 2 zero razy i pozostaje 2.
Zwykle modulo służy do sprawdzania, czy liczba jest parzysta, czy nieparzysta:
- Jeśli liczba jest parzysta, dzielenie jej przez 2 daje resztę 0.
- Jeśli liczba jest nieparzysta, dzielenie jej przez 2 daje resztę 1 (lub -1, jeśli liczba jest ujemna), więc
number % 2 != 0sprawdza, czy liczba jest nieparzysta.
Podczas używania operatora modulo z liczbami zmiennoprzecinkowymi (typu double) działa on podobnie jak w przypadku liczb całkowitych, ale zachowuje precyzję dziesiętną. Na przykład:
double result = 5.5 % 2.0;
// result wynosi 1.5Oto jak to działa: 2.0 mieści się w 5.5 dwa razy (4.0), a reszta wynosi 1.5 (5.5 - 4.0 = 1.5).
Uwaga: wartości double są przechowywane w postaci przybliżeń, dlatego niektóre reszty są wyświetlane z niewielkim błędem. Na przykład 5.2 % 2.0 wyświetla 1.2000000000000002, a nie 1.2. To normalne zachowanie arytmetyki zmiennoprzecinkowej, a nie błąd w twoim kodzie.
Kolejny przykład:
double result = 7.5 % 3.5;
// result wynosi 0.5Wyzwanie
PoczątkującyNapisz kod, który zainicjalizuje trzy zmienne: a (int), b (double) i c (int) wartościami 9, 2.6 i 11 (odpowiednio).
Następnie zainicjalizuj następujące zmienne:
d (int), która będzie przechowywać resztę z dzieleniaaprzez2e (int), która będzie przechowywać resztę z dzieleniaaprzez3f (double), która będzie przechowywać resztę z dzieleniabprzez1.5g (double), która będzie przechowywać resztę z dzieleniabprzez3.9h (int), która będzie przechowywać resztę z dzieleniacprzez10
Sprawdź wynik i zobacz, jak różne dzielne i dzielniki wpływają na wynik.
Spróbuj swoich sił
public class Main {
public static void main(String[] args) {
// Wpisz swój kod poniżej
// Nie zmieniaj poniższej linii
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("c = " + c);
System.out.println("d = " + d);
System.out.println("e = " + e);
System.out.println("f = " + f);
System.out.println("g = " + g);
System.out.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 moduloInkrementacja/dekrementacjaPostinkrementacja/postdekrementacjaSkrócone operatory arytmetyczneOperatory porównaniaPorównywanie ciągów znaków7Podstawowe wejście i wyjście
Metody System.outFormatowanie wyjściaKlasa ScannerPowtórka – do 120Powtórka – prawda czy fałsz10Metody (funkcje)
Deklarowanie metodParametry metodTypy zwracanePrzeciążanie metodPowtórzenie – funkcja SigmaPowtórzenie – funkcja walidującaMetody void13Operacje na ciągach znaków
Metody ciągów znaków — część 1Metody ciągów znaków — część 2Formatowanie ciągów znakówPorównywanie ciągów znaków5Operatory — część 2
Operatory logiczne — część 1Operatory logiczne — część 2Powtórka — podstawy logikiOperatory logiczne — część 3Operatory logiczne — część 43Zmienne — część 2
StałeKonwencje nazewnictwaPodsumowanie — inicjalizacja zmiennychKonwersja typów — część 1Konwersja typów — część 26Podejmowanie decyzji
Instrukcja ifIf - elseInstrukcja switchOperator trójargumentowyPowtórka: if - elseZagnieżdżone if - elsePoćwicz samodzielnie: Kompilator Java online