Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

معامل باقي القسمة (Modulo)

جزء من قسم Fundamentals في رحلة 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.

عادةً ما يُستخدم عامل باقي القسمة (modulo) للتحقق مما إذا كان الرقم زوجياً أم فردياً:

  • إذا كان الرقم زوجياً، فإن قسمته على 2 ستترك باقياً قدره 0.
  • إذا كان الرقم فردياً، فإن قسمته على 2 ستترك باقياً قدره 1.

عند استخدام المعامل modulo مع الأرقام ذات الفاصلة العائمة (doubles)، فإنه يعمل بشكل مشابه للأعداد الصحيحة ولكنه يحافظ على الدقة العشرية. على سبيل المثال:

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. هذا سلوك طبيعي للفاصلة العائمة (floating-point)، وليس خطأً في الكود الخاص بك.

مثال آخر:

double result = 7.5 % 3.5;
// النتيجة هي 0.5
challenge icon

التحدي

مبتدئ

اكتب كوداً يقوم بتهيئة ثلاثة متغيرات، a (int) و b (double) و c (int) بالقيم 9 و 2.6 و 11 (على التوالي).

بعد ذلك، قم بتهيئة المتغيرات التالية:

  • d (int) الذي سيحمل نتيجة a modulo 2 
  • e (int) الذي سيحمل نتيجة a modulo 3
  • f (double) الذي سيحمل نتيجة b modulo 1.5
  • g (double) الذي سيحمل نتيجة b modulo 3.9
  • h (int) الذي سيحمل نتيجة c modulo 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اختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals