אופרטור מודולו
חלק מהיחידה יסודות במסלול ה-Java של Coddy. שיעור 16 מתוך 73.
אופרטור המודולו % מחזיר את השארית של חילוק. ב-Java משתמשים בו בתחביר פשוט:
result = dividend % divisor;- מחולק: המספר שמחלקים.
- מחלק: המספר שבו מחלקים את המחולק.
- שארית: השארית שנותרת מהחלוקה.
לדוגמה:
result = 10 % 3;כאן, 10 מחולק ב־3. 3 נכנס ב־10 שלוש פעמים, עם שארית של 1. לכן, result יהיה 1.
מה קורה אם המחולק קטן יותר מהמחלק? במקרה כזה, המחלק נכנס 0 פעמים, ולכן השארית היא פשוט המחולק עצמו. לדוגמה, 2 % 3 שווה ל־2, כי 3 נכנס ב־2 אפס פעמים ונשארת שארית של 2.
בדרך כלל משתמשים בשארית חלוקה כדי לבדוק אם מספר הוא זוגי או אי־זוגי:
- אם מספר זוגי, חלוקתו ב־2 תשאיר שארית 0.
- אם מספר אי־זוגי, חלוקתו ב־2 תשאיר שארית 1 (או -1 אם המספר שלילי), ולכן
number % 2 != 0בודק אם המספר אי־זוגי.
כשמשתמשים באופרטור מודולו עם מספרים בנקודה צפה (מספרים מסוג double), הוא פועל באופן דומה למספרים שלמים, אך שומר על הדיוק העשרוני. לדוגמה:
double result = 5.5 % 2.0;
// הערך של result הוא 1.5כך זה עובד: 2.0 נכנס ב־5.5 פעמיים (4.0), והשארית היא 1.5 (5.5 - 4.0 = 1.5).
הערה: ערכי double נשמרים בקירוב, ולכן יש שאריות שמודפסות עם שגיאה זעירה. לדוגמה, 5.2 % 2.0 מדפיס 1.2000000000000002 במקום 1.2. זוהי התנהגות רגילה של נקודה צפה, ולא טעות בקוד שלך.
דוגמה נוספת:
double result = 7.5 % 3.5;
// הערך של result הוא 0.5אתגר
מתחיליםכתוב קוד שמאתחל שלושה משתנים, a (int), b (double) ו-c (int) עם הערכים 9, 2.6 ו-11 (בהתאמה).
לאחר מכן, אתחל את המשתנים הבאים:
d (int)שיכיל את התוצאה שלaמודולו2e (int)שיכיל את התוצאה שלaמודולו3f (double)שיכיל את התוצאה שלbמודולו1.5g (double)שיכיל את התוצאה שלbמודולו3.9h (int)שיכיל את התוצאה שלcמודולו10
בדוק את התוצאה וראה כיצד מחולקים ומחלקים שונים משפיעים עליה.
נסו בעצמכם
public class Main {
public static void main(String[] args) {
// כתבו את הקוד שלכם למטה
// אל תשנו את השורה למטה
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);
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 1
אופרטורים אריתמטייםאופרטור מודולוהגדלה/הקטנההגדלה/הקטנה לאחר מכןקיצורים אריתמטייםאופרטורי השוואההשוואת מחרוזות5אופרטורים חלק 2
אופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2סיכום - לוגיקה פשוטהאופרטורים לוגיים חלק 3אופרטורים לוגיים חלק 4תרגלו בעצמכם: קומפיילר Java אונליין