تعبير Switch
جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 36 من 59.
تعبير switch هو ميزة تتيح لك كتابة جمل switch أكثر إيجازاً وإرجاع القيم مباشرة. دعونا نرى كيف يعمل ذلك.
أنشئ تعبير switch أساسي يُرجع قيمة:
int number = 1;
String message = switch(number) {
case 1 -> "One";
case 2 -> "Two";
default -> "Other";
};بعد تنفيذ الكود أعلاه، يحتوي المتغير message على:
"One"
يمكنك أيضاً التعامل مع حالات متعددة معاً:
int day = 2;
String type = switch(day) {
case 1, 2, 3, 4, 5 -> "Weekday";
case 6, 7 -> "Weekend";
default -> "Invalid day";
};بعد تنفيذ الكود أعلاه، يحتوي المتغير type على:
"Weekday"
التحدي
سهلقم بإنشاء طريقة (method) باسم getDayType تأخذ وسيطين:
- عدد صحيح (
day) يمثل يومًا من أيام الأسبوع (1-7) - قيمة منطقية (
abbreviated) تحدد تنسيق الإرجاع
يجب أن تستخدم الطريقة تعبير switch لإرجاع نوع اليوم:
- للأيام 1-5 (من الاثنين إلى الجمعة): أرجع "WORKDAY" إذا لم يكن مختصرًا، أو "WKD" إذا كان مختصرًا
- للأيام 6-7 (السبت والأحد): أرجع "WEEKEND" إذا لم يكن مختصرًا، أو "WKND" إذا كان مختصرًا
- لأي رقم آخر: أرجع "INVALID" إذا لم يكن مختصرًا، أو "INV" إذا كان مختصرًا
ورقة مرجعية
تسمح لك تعبيرات Switch بكتابة جمل switch موجزة تُرجع القيم مباشرةً باستخدام بناء جملة السهم (->):
int number = 1;
String message = switch(number) {
case 1 -> "One";
case 2 -> "Two";
default -> "Other";
};يمكنك التعامل مع حالات متعددة معاً عن طريق الفصل بينها بفاصلات:
int day = 2;
String type = switch(day) {
case 1, 2, 3, 4, 5 -> "Weekday";
case 6, 7 -> "Weekend";
default -> "Invalid day";
};جرّب بنفسك
import java.util.Scanner;
public class Main {
public static String getDayType(int day, boolean abbreviated) {
// اكتب كودك هنا
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int day = Integer.parseInt(scanner.nextLine());
boolean abbreviated = Boolean.parseBoolean(scanner.nextLine());
System.out.println(getDayType(day, abbreviated));
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكم