جملة Switch
جزء من قسم Fundamentals في رحلة C++ على Coddy — الدرس 29 من 74.
جملة switch تشبه جملة if متعددة الاتجاهات. فبدلاً من تقييم شرط واحد، تقوم بالتحقق من قيمة متغير مقابل حالات متعددة وتنفذ الكود المرتبط بالحالة المطابقة.
إليك الهيكل الأساسي لجملة switch:
switch (variable) {
case value1:
// الكود الذي سيتم تنفيذه إذا كانت variable تساوي value1
break;
case value2:
// الكود الذي سيتم تنفيذه إذا كانت variable تساوي value2
break;
// ... حالات إضافية
default:
// الكود الذي سيتم تنفيذه إذا لم تتطابق أي حالة
}- تتبع الكلمة المفتاحية
switchبالمتغير الذي تريد اختباره بين قوسين. - تمثل كل
caseقيمة محتملة للمتغير. - يتم تنفيذ الكود الموجود داخل كل
caseإذا تطابق المتغير مع قيمة تلك الحالة.
- تُعد جملة
breakأمراً بالغ الأهمية؛ فهي تخرج منswitchبعد تنفيذ الحالة. وبدونها، سينتقل التنفيذ إلى الحالة التالية. - حالة
defaultاختيارية ويتم تنفيذها إذا لم تتطابق أي حالة أخرى.
إليك مثالاً:
int day = 3;
std::string dayName;
switch (day) {
case 1:
dayName = "Monday";
break;
case 2:
dayName = "Tuesday";
break;
// ... حالات للأيام الأخرى
default:
dayName = "Invalid day";
}يمكنك أيضاً دمج عدة حالات في حالة واحدة:
int day = 3;
std::string dayName;
switch (day) {
case 1:
case 2:
case 3:
dayName = "Start of week";
break;
// ... حالات للأيام الأخرى
default:
dayName = "Invalid day";
}التحدي
مبتدئأنشئ برنامجًا يأخذ رقم الشهر (1 لشهر يناير، 2 لشهر فبراير، إلخ) ويطبع الفصل الذي ينتمي إليه. استخدم جملة switch للمنطق البرمجي.
الفصول والشهور المقابلة لها هي:
- Winter: ديسمبر (12)، يناير (1)، فبراير (2)
- Spring: مارس (3)، أبريل (4)، مايو (5)
- Summer: يونيو (6)، يوليو (7)، أغسطس (8)
- Autumn: سبتمبر (9)، أكتوبر (10)، نوفمبر (11)
- Invalid month: للخيارات الأخرى
ورقة مرجعية
تُعد جملة switch شرطاً متعدد المسارات يتحقق من قيمة متغير مقابل حالات متعددة:
switch (variable) {
case value1:
// الكود الذي سيتم تنفيذه إذا كان variable يساوي value1
break;
case value2:
// الكود الذي سيتم تنفيذه إذا كان variable يساوي value2
break;
default:
// الكود الذي سيتم تنفيذه إذا لم تتطابق أي حالة
}المكونات الرئيسية:
case: يمثل قيمة محتملة للمتغيرbreak: يخرج من جملة switch بعد تنفيذ الحالة (يمنع الانتقال التلقائي للحالة التالية)default: حالة اختيارية يتم تنفيذها إذا لم تتطابق أي حالة أخرى
يمكنك دمج حالات متعددة:
switch (day) {
case 1:
case 2:
case 3:
dayName = "Start of week";
break;
default:
dayName = "Invalid day";
}جرّب بنفسك
#include <iostream>
int main() {
int month;
std::cin >> month;
std::string season = "";
// اكتب كودك بالأسفل
std::cout << season << std::endl;
return 0;
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)الزيادة والنقصانالزيادة والنقصان اللاحقةاختصارات العمليات الحسابيةمعاملات المقارنةمقارنة النصوص