Πώς να χρησιμοποιήσετε τον τελεστή modulo της Java
Όταν η διαίρεση δεν λειτουργεί τέλεια, μένει ένα υπόλοιπο. Ο τελεστής modulo της Java υπάρχει για να το λάβει υπόψη στον κώδικά σας. Ο τελεστής είναι σημαντικά πιο αξιόπιστος από άλλες λύσεις και χρησιμοποιείται κυρίως για να προσδιορίσει αν οι αριθμοί είναι ζυγοί ή μονόι.
Τι είναι ο τελεστής modulo της Java;
Σε όλες τις κοινές γλώσσες προγραμματισμού, μπορείτε να εκτελέσετε τις βασικές αριθμητικές πράξεις της πρόσθεσης, της αφαίρεσης, του πολλαπλασιασμού και της διαίρεσης. Μπορείτε επίσης να χρησιμοποιήσετε τους τελεστές Java για να εμφανίσετε και να λύσετε σύνθετους υπολογισμούς. Όσον αφορά ειδικότερα τη διαίρεση, υπάρχει πάντα ο κίνδυνος να προκύψει υπόλοιπο. Για παράδειγμα, αν διαιρέσετε το 11 με το 4, θα έχετε υπόλοιπο 3 (2 x 4 = 8, 11 - 8 = 3). Αυτό μπορεί να οδηγήσει σε προβλήματα στον προγραμματισμό.
Γι’ αυτό υπάρχει ο τελεστής modulo της Java. Είναι επίσης γνωστός ως τελεστής υπολοίπου, καθώς προσδιορίζει και επιστρέφει το υπόλοιπο μετά τη διαίρεση δύο αριθμών. Υπάρχουν διάφορες περιπτώσεις στις οποίες είναι εξαιρετικά σημαντικός. Ο τελεστής μπορεί να χρησιμοποιηθεί, για παράδειγμα, για να διαπιστωθεί αν ένας αριθμός είναι ζυγός ή μονός ή αν ένας αριθμός είναι πρώτος. Αν και υπάρχουν και άλλοι τρόποι για να προσδιοριστεί το υπόλοιπο, αυτοί φτάνουν γρήγορα στα όριά τους. Το παρακάτω παράδειγμα θα το καταδείξει.
Σε τι χρησιμοποιείται ο τελεστής υπολοίπου;
Με απλά λόγια, η διαίρεση περιλαμβάνει τον έλεγχο του πόσες φορές ένας διαιρέτης χωράει σε ένα διαιρούμενο. Το αποτέλεσμα είναι το πηλίκο. Εάν το διαιρούμενο και ο διαιρέτης είναι και τα δύο αποθηκευμένα στον πρωτόγονο τύπο δεδομένων Java int (ή ακέραιος αριθμός), το υπόλοιπο μπορεί εύκολα να εκφραστεί χωρίς το Java modulo. Ο κώδικας θα έχει την ακόλουθη μορφή:
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);
}
}javaΣτη συνέχεια, μπορούμε να χρησιμοποιήσουμε την εντολή Java System.out.println για να δούμε το αποτέλεσμα:
The remainder is: 3javaΑυτή η επιλογή είναι λίγο δυσκίνητη, αλλά θεωρητικά είναι εφικτή. Ωστόσο, θα αντιμετωπίσουμε προβλήματα μόλις τουλάχιστον ένας από τους τελεστές είναι float ή double, δηλαδή ένας τύπος δεδομένων με κινητή υποδιαστολή. Σε αυτή την περίπτωση, ο ίδιος υπολογισμός θα μας δώσει διαφορετικό αποτέλεσμα:
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.0javaΠοια είναι η σύνταξη του modulo στη Java;
Ο τελεστής modulo της Java, από την άλλη πλευρά, θα επιστρέφει πάντα το ακριβές υπόλοιπο. Εκτελεί διαίρεση, αλλά εμφανίζει μόνο το υπόλοιπο, όχι το πηλίκο. Αρχικοποιείται με ένα σύμβολο ποσοστού, που σημαίνει ότι η σύνταξή του έχει την ακόλουθη μορφή:
Dividend % DivisorjavaΤο Java modulo θα είχε την ακόλουθη μορφή όταν χρησιμοποιείται στο παραπάνω παράδειγμα:
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);
}
}javaΤο αποτέλεσμα είναι τότε:
The remainder is: 3.0javaΠώς να προσδιορίσετε αν ένας αριθμός είναι μονός ή ζυγός
Το Java modulo μπορεί να χρησιμοποιηθεί για να διαπιστωθεί αν ένας αριθμός είναι ζυγός ή μονός. Αυτό προκύπτει από μια απλή λογική: αν διαιρέσετε οποιονδήποτε αριθμό με το 2 και το υπόλοιπο είναι 0, τότε είναι ζυγός. Διαφορετικά, είναι μονός. Θα το δείξουμε αυτό με μια δήλωση 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.");
}
}
}javaΌπως αναμενόταν, έχουμε το ακόλουθο αποτέλεσμα:
11 is an odd number.javaΠώς να προσδιορίσετε το υπόλοιπο ενός αρνητικού αριθμού
Μπορείτε επίσης να χρησιμοποιήσετε το Java modulo για να λάβετε το υπόλοιπο όταν ο διαιρούμενος ή ο διαιρέτης είναι αρνητικός. Ακολουθεί ένα απλό παράδειγμα:
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);
}
}javaΔεδομένου ότι το μέρισμα είναι αρνητικό, το υπόλοιπο είναι επίσης αρνητικό:
The remainder is: -3javaΑλλά μπορεί να μην θέλετε πάντα να έχετε αρνητικό αποτέλεσμα. Αν θέλετε να επιστρέψετε ένα θετικό υπόλοιπο, μπορείτε να τροποποιήσετε λίγο τον κώδικα. Πρώτα ελέγξτε αν το υπόλοιπο είναι μικρότερο από 0. Αν ναι, προσθέστε τον διαιρέτη και θα πάρετε το θετικό υπόλοιπο. Ο κώδικας θα έχει την εξής μορφή:
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);
}
}javaΘα λάβουμε το ακόλουθο αποτέλεσμα:
The remainder before is: -3
The remainder after is: 1java