معامل باقي القسمة (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التحدي
مبتدئاكتب تعليمات برمجية تهيّئ ثلاثة متغيرات، 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
تحقق من النتيجة ولاحظ كيف تؤثر قيم 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);
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)الزيادة والنقصانالزيادة والنقصان اللاحقةاختصارات العمليات الحسابيةمعاملات المقارنةمقارنة النصوص7أساسيات الإدخال والإخراج
دوال System.outتنسيق المخرجاتكلاس Scannerمراجعة - حتى 120مراجعة - صح أم خطأ5المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعاملات المنطقية - الجزء الرابع3المتغيرات - الجزء الثاني
الثوابتقواعد التسميةمراجعة - تهيئة المتغيراتتحويل الأنواع - الجزء الأولتحويل الأنواع - الجزء الثاني6اتخاذ القرار
جملة Ifجملة If - Elseجملة Switchالمعامل الثلاثيمراجعة - If Elseجملة If - Else المتداخلةتدرّب بنفسك: مترجم Java عبر الإنترنت