اليوم رح نحكي عن شي اسمه Control Flow، ومنه نقدر نحدد أي كود ينعمله run تحت أي ظرف معين.
أول شي لازم نفهم إنه الكود بيشتغل من top to bottom، يعني من الفوق لتحت. إذا في كود هوني بيشتغل، بعدين ينزل للكود اللي تحته، وهكذا.
بس فينا نحن نحدد الفلو وين يروح وأي اتجاه يأخذ، شو الكود لازم ينعمل run وهكذا.
من أساسيات تحديد الفلو هي:
ifelse ifelseswitchخلي يكون عنا variable من نوع int اسمه age:
int age = 17;
لنقول عنا أبليكيشن بتتأكد من عمر الشخص، وعلى حسب عمره بتقدملو الخدمات. فكيف منحدد شو النوعية الكودية اللي رح أعمل لها run؟
أول شي منحدد شو هو الـ condition، يعني الشرط. بالبداية منحط if.
الـ if statement بتتكون من السينتكس التالي:
if (condition) {
// الكود اللي رح ينعمل run إذا الشرط صحيح
}
() هو الشرط، الـ condition.{} هو الكود اللي رح ينعمل run إذا الشرط صحيح.مثلاً نتحقق إذا كان الـ age أصغر من 18:
int age = 17;
if (age < 18) {
System.out.println
اشترك في النشرة البريدية
دروس جديدة، مقالات، وأدوات مباشرة لبريدك.
الـ else بنفس السينتكس، بنكتب كلمة else ومبعدين نفتح curly brackets:
if (age < 18) {
System.out.println("You are a minor");
} else {
System.out.println("You are an adult");
}الـ else هوني الكود بنعمله run بحال ما تم الشرط.
بما إنه age = 17، الشرط age < 18 صحيح، فرح ينطبع You are a minor، ورح نتخطى الـ else بالكامل.
إذا بدنا نتأكد من أكثر من حالة، يعني مثلاً نطبع ثلاث رسائل مختلفة على حسب العمر، فينا نستخدم else if.
مهم: الـ else if لازم تكون دايماً قبل الـ else.
int age = 18;
if (age < 18) {
System.out.println("You are a minor");
} else if (age == 18) {
System.out.println("You just turned 18!");
} else {
System.out.println("You are an adult");
}الفرق بين else if و else:
else if | else | |
|---|---|---|
| فيها تحط condition؟ | نعم | لا |
| متى بتنعمل run؟ | إذا الشرط الخاص فيها صحيح | إذا ما انطبق أي شرط قبلها |
الـ else هي حرفياً الـ fallback، بتنعمل run إذا ما انطبق أي شرط قبلها.
لما بيكون age = 18:
age < 18 - غلط، فبيتخطاه.age == 18 - صح، فبيطبع الرسالة ويطلع من البلوك كله.else ما رح ينعمل run أبداً، لأنه شرط قبلها انطبق.أما لو كان age = 25:
age < 18 - غلط.age == 18 - غلط.else ويطبع You are an adult.طريقة ثانية للـ control flow هي الـ switch statement.
خلينا نحط متغير int اسمه day:
int day = 3;الـ switch statement بتاخذ الـ variable، وبتحط فيها كيسات case:
switch (day) {
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("Invalid day");
break;
}case بتمثل قيمة معينة ممكن يكون عليها الـ variable.switch بتقارن الـ variable مع كل case بالترتيب.break مهمتها إنها توقف التنفيذ بعد ما ينعمل الكود الخاص بالـ case.default هي مثل الـ else، بتنعمل run إذا ما انطبق أي case.بما إنه day = 3، الـ switch رح تقارن:
case 1 - ما بتطابق.case 2 - ما بتطابق.case 3 - بتطابق، فرح يطبع Wednesday ويوقف.if / else if / else | switch | |
|---|---|---|
| الاستخدام | شروط مرنة وعمليات مقارنة | مقارنة قيمة واحدة مع قيم محددة |
| الـ condition | أي تعبير منطقي | قيم محددة case |
| الـ fallback | else | default |