Kako uporabljati Java modulo operator
Ko deljenje ne deluje popolnoma, ostane ostanek. Java modulo operator je namenjen upoštevanju tega v vašem kodu. Operator je bistveno zanesljivejši od drugih rešitev in se uporablja predvsem za ugotavljanje, ali so števila siva ali liha.
Kaj je Java modulo operator?
V vseh pogostih programskih jezikih lahko izvajate osnovne aritmetične operacije seštevanja, odštevanja, množenja in deljenja. Za prikazovanje in reševanje zapletenih izračunov lahko uporabite tudi Java operacije. Pri deljenju obstaja vedno tveganje, da bo ostalo ostanek. Če na primer delite 11 z 4, boste dobili ostanek 3 (2 x 4 = 8, 11 - 8 = 3). To lahko povzroči težave pri programiranju.
Za to je namenjen Java modulo operator. Poznan je tudi kot operator za ostanek, saj določi in vrne ostanek po delitvi dveh številk. Obstajajo različne situacije, v katerih je izredno pomemben. Operator se lahko uporabi na primer za ugotavljanje, ali je število sodo ali liho ali pa je število praštevilo. Čeprav obstajajo tudi drugi načini za določanje ostanka, ti hitro dosežejo svoje meje. To bo ponazoril naslednji primer.
Za kaj se uporablja operator za ostanek?
Preprosto povedano, deljenje vključuje preverjanje, kolikokrat se delitelj prilega v deljenec. Rezultat je količnik. Če sta deljenec in delitelj shranjena v primitivnem podatkovnem tipu Java int (ali celo število), se ostanek lahko enostavno izrazi brez Java modulo. Koda bi bila naslednja:
public class Main {
public static void main(String[] args) {
int dividend = 11;
int divisor = 4;
int remainder = dividend - (divisor * (dividend / divisor));
System.out.println("The remainder is: " + remainder);
}
}javaRezultat lahko nato ogledamo z ukazom Java System.out.println:
The remainder is: 3javaTa možnost je nekoliko okorna, vendar je v teoriji izvedljiva. Vendar pa bomo naleteli na težave, če je vsaj eden od operandov float ali double, torej tip podatkov s plavajočo vejico. V tem primeru bo isti izračun dal drugačen rezultat:
public class Main {
public static void main(String[] args) {
int dividend = 11;
double divisor = 4;
double remainder = dividend - (divisor * (dividend / divisor));
System.out.println("The remainder is: " + remainder);
}
}javaThe remainder is: 0.0javaKakšna je sintaksa modula v Javi?
Java modulo operator pa vedno vrne natančen ostanek. Izvede deljenje, vendar prikaže le ostanek, ne pa tudi kvocient. Inicializira se z znakom odstotka, kar pomeni, da je njegova sintaksa naslednja:
Dividend % DivisorjavaJava modulo bi v zgornjem primeru izgledal takole:
public class Main {
public static void main(String[] args) {
int dividend = 11;
double divisor = 4;
double remainder = dividend % divisor;
System.out.println("The remainder is: " + remainder);
}
}javaRezultat je nato:
The remainder is: 3.0javaKako ugotoviti, ali je število liho ali sodo
Java modulo se lahko uporabi za ugotavljanje, ali je število sodo ali liho. Izhaja iz preproste logike: če katero koli število delite z 2 in je ostanek 0, je sodo. V nasprotnem primeru je liho. To bomo ponazorili z izjavo if-else.
public class Main {
public static void main(String[] args) {
int dividend = 11;
if (dividend % 2 == 0) {
System.out.println(dividend + " is an even number.");
}
else {
System.out.println(dividend + " is an odd number.");
}
}
}javaKot pričakovano, dobimo naslednji rezultat:
11 is an odd number.javaKako določiti ostanek negativnega števila
Java modulo lahko uporabite tudi za izračun ostanka, kadar je deljenec ali delitelj negativen. Tukaj je preprost primer:
public class Main {
public static void main(String[] args) {
int dividend = -11;
int divisor = 4;
int remainder = dividend % divisor;
System.out.println("The remainder is: " + remainder);
}
}javaKer je dividenda negativna, je tudi preostanek negativen:
The remainder is: -3javaVendar pa morda ne želite vedno dobiti negativnega rezultata. Če želite vrniti pozitivni ostanek, lahko kodo nekoliko spremenite. Najprej preverite, ali je ostanek manjši od 0. Če je, dodajte delitelja in dobili boste pozitivni ostanek. Tako bo izgledala koda:
public class Main {
public static void main(String[] args) {
int dividend = -11;
int divisor = 4;
int remainder = dividend % divisor;
System.out.println("The remainder before is: " + remainder);
while (dividend < 0) dividend += divisor;
int positive_remainder = dividend % divisor;
System.out.println("The remainder after is: " + positive_remainder);
}
}javaDobili bomo naslednji izpis:
The remainder before is: -3
The remainder after is: 1java