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

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

جزء من قسم الأساسيات في رحلة Java على Coddy. الدرس 16 من 73.

يعطي معامل modulo % باقي القسمة. في Java، يُستخدم بصيغة بسيطة:

result = dividend % divisor;
  • dividend: العدد الذي تتم قسمته.
  • divisor: العدد الذي يقسم dividend.
  • result: باقي القسمة.

على سبيل المثال:

result = 10 % 3;

هنا، يتم تقسيم 10 على 3. يدخل العدد 3 في 10 ثلاث مرات، مع باقي يساوي 1. لذلك، ستكون قيمة result هي 1.

ماذا يحدث إذا كان dividend أصغر من divisor؟ في هذه الحالة، يدخل divisor صفر مرات، لذا يكون الباقي هو dividend نفسه ببساطة. على سبيل المثال، 2 % 3 يساوي 2، لأن 3 يدخل في 2 صفر مرات، ويتبقى 2.

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

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

عند استخدام المعامل modulo مع الأعداد ذات الفاصلة العائمة (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

تحقق من النتيجة ولاحظ كيف تؤثر قيم dividend وdivisor المختلفة في result.

جرّب بنفسك

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 عبر الإنترنت