دروس الوحدة (2/2)
التحكم في التدفق
لجعل برامجنا ديناميكية وقادرة على اتخاذ القرارات، نستخدم هياكل التحكم في التدفق: البيانات الشرطية والحلقات.
الشروط الشرطية: if، else if، و else
تقوم عبارة if بتنفيذ كتلة من التعليمات البرمجية فقط إذا كان الشرط المنطقي المحدد صحيحًا.
int temperature = 25;
if (temperature > 30) {
System.out.println("Fa molto caldo!");
} else if (temperature >= 20) {
System.out.println("Il clima è piacevole.");
} else {
System.out.println("Fa freddo.");
}العوامل المنطقية
يمكننا الجمع بين شروط متعددة باستخدام العوامل المنطقية:
&&(AND): يُرجعtrueإذا كان كلا الشرطين صحيحين.||(OR): يُرجعtrueإذا كان أحد الشروط على الأقل صحيحًا.!(NOT): يعكس القيمة المنطقية للشرط.
boolean hasLicense = true;
boolean hasCar = false;
if (hasLicense && hasCar) {
System.out.println("Puoi guidare.");
}الحلقات: while و for
تسمح لنا الحلقات بتنفيذ مجموعة من التعليمات البرمجية بشكل متكرر.
الحلقة while
ينفذ الكود طالما بقي الشرط المحدد true.
int count = 1;
while (count <= 3) {
System.out.println("Conteggio: " + count);
count++; // Increment count by 1
}الحلقة for
مثالي عندما نعرف مسبقًا عدد التكرارات المطلوب تنفيذها. يتطلب بناء الجملة التهيئة، وشرط الإنهاء، وتعبير الزيادة.
for (int i = 0; i < 5; i++) {
System.out.println("Iteration: " + i);
}الشروط الشرطية المتقدمة: switch
عندما نحتاج إلى مقارنة متغير واحد بقيم ثابتة متعددة، فإن عبارة switch تجعل الكود أكثر نظافة من كتل if-else المتعددة المتسلسلة.
int dayOfWeek = 3;
switch (dayOfWeek) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
default:
System.out.println("Other day");
}التحكم في الحلقة: break و continue
يمكننا تغيير التدفق الطبيعي للحلقة باستخدام بيانين خاصين:
break: ينهي فورًا تنفيذ الحلقة الأعمق، ويخرج منها تمامًا.continue: يتخطى بقية التعليمات البرمجية في التكرار الحالي وينتقل مباشرة إلى تقييم الشرط للتكرار التالي (أو تعبير الزيادة في حلقةfor).
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue; // Skips printing for the number 3
}
System.out.println(i);
}جربه بنفسك
أكمل الكود عن طريق التحقق من متغير النتيجة: إذا كان أكبر من أو يساوي 60، فقم بطباعة Pass، وإلا قم بطباعة Fail.
إظهار التلميح
استخدم `if (score >= 60) { ... } else { ... }` واطبع السلسلة المطلوبة بالضبط.
الحل متاح بعد 3 من المحاولات
اكتب حلقة for لطباعة الأرقام من 1 إلى 5 (ضمنًا) على أسطر منفصلة.
إظهار التلميح
استخدم التهيئة `int i = 1` والشرط `i <= 5` وقم بزيادة `i++` داخل رأس الحلقة `for`.
الحل متاح بعد 3 من المحاولات
أكمل الكود باستخدام حلقة while لطباعة الأرقام من 3 إلى 1 (ضمنًا) على أسطر منفصلة.
إظهار التلميح
اكتب while (count >= 1) { ... }` اطبع `count` ثم قم بتناقصه باستخدام `count--;`.
الحل متاح بعد 3 من المحاولات