جملة الشرط if
حتى الآن كان البرنامج ينفّذ كل سطر من الأعلى إلى الأسفل. الآن يتّخذ قرارًا: إذا تحقّق شرط فافعل كذا.
- كتابة جملة if بمفردها و if…else.
- اختبار عدّة شروط بالترتيب باستخدام else if.
- كتابة if متداخلة لفحص شرط بعد آخر.
- تجنّب خطأَي = بدل == والفاصلة المنقوطة بعد الشرط.
١الفكرة
نضع شرطًا نتيجته true أو false، فيُنفَّذ الكود المرتبط به فقط عند تحقّقه.
٢الصور الأربع لجملة if
١. if بمفردها: نفّذ أو تجاوز
int age = 20; if (age >= 18){ System.out.println("مسموح لك بالدخول");}
لو كان العمر أقل من 18 لا يُطبع شيء.
٢. if … else: اختر بين مسارين
int grade = 50; if (grade >= 60){ System.out.println("ناجح");}else{ System.out.println("راسب");}
٣. if … else if … else: عدّة شروط بالترتيب
يُنفَّذ أوّل شرط يتحقّق فقط، ثم يخرج. و else الأخيرة لبقية الحالات.
int grade = 75; if (grade >= 90) { System.out.println("ممتاز");}else if (grade >= 80) { System.out.println("جيد جدًا");}else if (grade >= 70) { System.out.println("جيد");}else { System.out.println("راسب");}
٤. if المتداخلة: شرط داخل شرط
int age = 20;boolean hasTicket = true; if (age >= 18) { if (hasTicket) { System.out.println("تفضّل بالدخول"); }}
٣أخطاء شائعة
if (x = 5)if (x == 5)= إسناد، و == مقارنة. داخل الشرط نحتاج المقارنة.
if (age >= 18);{ System.out.println("مسموح");}
if (age >= 18){ System.out.println("مسموح");}
الفاصلة المنقوطة بعد الشرط تُنهي جملة if فارغة، فتُنفَّذ الكتلة دائمًا مهما كان الشرط.
- الشرط بين قوسين ( )، والكود المرتبط بين قوسين معقوفين { }.
- كلمة
elseبأحرف صغيرة؛Elseخطأ لأن جافا حسّاسة لحالة الأحرف.
توقّع وتحقّق
أجب قبل أن تنظر إلى الشرح. التصحيح فوري، وإجاباتك تُحفظ.
ما الناتج؟
int x = 10;if (x > 15) System.out.println("كبير");else System.out.println("صغير");
إذا كانت grade = 95 في سلسلة التقديرات أعلاه، كم رسالة تُطبع؟
متى تُطبع «تفضّل بالدخول» في مثال if المتداخلة؟
أي سطر صحيح؟
الخلاصة
- if تنفّذ الكود عند تحقّق الشرط فقط.
- if…else تختار بين مسارين.
- else if تختبر الشروط بالترتيب وتنفّذ أوّل شرط متحقّق فقط.
- if المتداخلة تفحص شرطًا بعد التأكّد من سابقه.
- لا تضع ; بعد الشرط، واستخدم == للمقارنة.
تحدٍّ برمجي: مُقدِّر الدرجات
متوسطحوّل الدرجة إلى تقدير، ثم حدّد هل الدرجة زوجية أم فردية.
- 90 فأكثر ممتاز، 80 جيد جدًا، 70 جيد، 60 مقبول، وأقل من 60 راسب.
- استخدم سلسلة if … else if … else.
- استخدم % 2 لمعرفة الزوجي والفردي.
ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:
public class Grader{ public static void main(String[] args) { int grade = 67; // 1) التقدير // 2) زوجي أم فردي }}
💡 تلميح 1
💡 تلميح 2
حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.
public class Grader{ public static void main(String[] args) { int grade = 67; if (grade >= 90) System.out.println("التقدير: ممتاز"); else if (grade >= 80) System.out.println("التقدير: جيد جدًا"); else if (grade >= 70) System.out.println("التقدير: جيد"); else if (grade >= 60) System.out.println("التقدير: مقبول"); else System.out.println("التقدير: راسب"); if (grade % 2 == 0) System.out.println("الدرجة زوجية"); else System.out.println("الدرجة فردية"); }}
أسئلة التقييم
ورقة العمل: جملة الشرط if. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».
1السؤال الأول: اختر الإجابة الصحيحة
1) الشرط داخل if نتيجته دائمًا:
2) لاختيار بين مسارين نستخدم:
3) لاختبار عدّة شروط بالترتيب نستخدم:
4) يُوضع الشرط بين:
2السؤال الثاني: صح أم خطأ
3السؤال الثالث: أكمل الفراغات
1) الصيغة: if ( ) { ... }
💡 ما يوضع بين القوسين ونتيجته true أو false.
2) الجزء الذي يُنفَّذ عند فشل الشرط هو .
💡 كلمة من أربعة أحرف.
3) نستخدم لاختبار عدّة حالات مرتّبة.
💡 كلمتان: else ثم …
4) نتيجة الشرط من نوع .
💡 النوع الذي قيمته true أو false.
5) خطأ شائع: استخدام = بدل في المقارنة.
💡 رمز المقارنة المكوّن من علامتين.
4السؤال الرابع: التوصيل
طابِق كل عنصر في العمود (أ) بما يناسبه في العمود (ب):
- 1) if
- 2) if…else
- 3) else if
- 4) if المتداخلة
- 5) ==
- أ. مقارنة المساواة.
- ب. تنفيذ عند تحقّق شرط فقط.
- ج. اختيار بين مسارين.
- د. فحص شرط داخل شرط.
- هـ. عدّة حالات مرتّبة.
5السؤال الخامس: أسئلة عملية
1) تتبّع الناتج:
int g = 50;if (g >= 60) System.out.print("ناجح");else System.out.print("راسب");
2) اكتب شرط if يطبع "بالغ" إذا كان age >= 18:
if (age >= 18) { System.out.println("بالغ");}
3) صحّح الخطأ في الشرط:
if (x = 5) { ... }if (x == 5) { ... }