Menu
Coddy logo textTech

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

חלק מהיחידה יסודות במסלול ה-Java של Coddy. שיעור 16 מתוך 73.

אופרטור המודולו % מחזיר את השארית של חילוק. ב-Java משתמשים בו בתחביר פשוט:

result = dividend % divisor;
  • dividend: המספר שמחלקים.
  • divisor: המספר שבו מחלקים את המחולק.
  • result: השארית של החלוקה.

לדוגמה:

result = 10 % 3;

כאן, 10 מחולק ב־3. 3 נכנס ב־10 שלוש פעמים, עם שארית של 1. לכן, result יהיה 1.

מה אם המחולק קטן יותר מהמחלק? במקרה כזה, המחלק נכנס 0 פעמים, ולכן השארית היא פשוט המחולק עצמו. לדוגמה, 2 % 3 שווה ל־2, כי 3 נכנס ב־2 אפס פעמים ונשארת שארית של 2.

בדרך כלל משתמשים בפעולת מודולו כדי לבדוק אם מספר הוא זוגי או אי־זוגי:

  • אם מספר זוגי, חלוקה שלו ב־2 תשאיר שארית 0.
  • אם מספר אי־זוגי, חלוקה שלו ב־2 תשאיר שארית 1.

בעת שימוש במודולו עם מספרים בנקודה צפה (מספרי 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 אונליין