Menu
CoddyTech

אופרטור מודולו

חלק מהיחידה יסודות במסלול ה-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
challenge icon

אתגר

מתחילים

כתוב קוד שמאתחל שלושה משתנים, a (int), b (double) ו-c (int) עם הערכים 9, 2.6 ו-11 (בהתאמה).

לאחר מכן, אתחל את המשתנים הבאים:

  • d (int) שיכיל את התוצאה של a מודולו 2 
  • e (int) שיכיל את התוצאה של a מודולו 3
  • f (double) שיכיל את התוצאה של b מודולו 1.5
  • g (double) שיכיל את התוצאה של b מודולו 3.9
  • h (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);
    }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר Java אונליין