السلام عليكم ورحمة الله وبركاته 
تنزيل
تحيه طيبه اليكم
نستكمل سويا دروس دورة ترايدنت المفتوحة التى ابتدأناها سويا فى معهدنا الغالى ترايدنت 

والآن سنقدم الدرس الثالث بعنوان اتخاذ القرارات وحلقات التكرار وتتمثل محاور الحديث على : 
1- مقدمة الى اتخاذ القرار .

3- جملة if … else
4- جملة if … elseif … else
5- جملة switch
6- استخدام المعاملات المنطقيه

9- جملة while
10- جملة do….while
11- جملة foreach
2- جملة if 7- مقدمة الى حلقات التكرار 8- جملة for 

الشرح

1- مقدمة الى اتخاذ القرار .
اتخاذ القرار ببساطه بعيدأ عن البرمجه وكتابة الأكواد هو شئ أساسى فى حياتك العمليه فكل شئ فى حياتك يسير تبعا لاتخاذ قرار فمثلا :
أنت تستيقظ الصباح باكر سيكون هناك بعض العمليات التى تنفذها مثل غسل الوجه والوضوء ….الخ
وعلى حسب اليوم 
ستقرر هل أنك ستتوجه الى عملك أم لا .
فاذا كان اليوم هو يوم الجمعه فبالطبع فانك لن تتوجه الى عملك لأن الجمعه أجازه 
أما اذا كان يوم آخر ستتوجه الى عملك لتمارس حياتك العمليه .المثال السابق من الحياه العمليه فاذا نظرنا الى الكلمات باللون الازرق ستجد أنها تحدد شئ معين وهو ما نعنى بهاتخاذ القرار . ( اذا كان كذا سيحدث كذا وان لم يكن سيحدث شئ آخر ).أما اذا تحدثنا عن اتخاذ القرار فى البرمجه سنجد أنه لا يوجد اختلاف بينها وبين ذلك المثال فقد نحتاج فى بعض التطبيقات الى تغيير مسار أو اتجاه تنفيذ البرنامج بناء على تغيير بعض الظروف التى تؤثر على البرنامج وعلى ذلك المسار .غالبا يعبر عن تلك الظروف المؤثره بواسطة شرط أو مجموعه من الشروط يعتمد على تحققها أو عدم تحققها مسار تنفيذ البرنامج .


وعلى سبيل العموم يحتوى هيكل بناء php على ثلاث عبارات شرطيه وهم :
الأولى :
 if 
الثانيه : if …else ويتفرع منها if … elseif … else
الثالثه : switch


2- جملة if [اذا كان …. فــ ……] 
وفيها يتم تنفيذ العمليات داخل الداله فى حالة تحقق الشرط ثم يستمر الى باقى تنفيذ الكود أما ان لم يتحقق الشرط فسيتجاهل البرنامج الكود المتواجد داخل الداله .

الصيغه العامه لجملة if : 

رمز PHP:
<?
if(الشرط الذى يتم اختباره){
//ضع هنا الكود الذى تريد تنفيذه عند تحقق الشرط
}
?>

واذا أخذنا مثال على جملة if :

رمز PHP:
<?
$prog=1;
if($prog==1){
echo "passed";
}
?>

فى هذا المثال قمنا بتعريف متغير جديد واعطينا له القيمه واحد ثم استخدمنا الجمله الشرطيه if فى حالة أن قيمة المتغير هى واحد سيتم طباعة كلمة passed ثم يستمر فى تنفيذ باقى الكود المتواجد فى الملف
تابع معى … اذا قمت بتغيير قيمة المتغير من واحد الى اتنين وقمت بتنفيذ الكود فانه لن يطبع شئ والسبب هو أن الشرط لم يتحقق لمى يتم تنفيذ الكود المتواجد بداخل الداله الشرطيه ويتضح هذا من المثال التالى :

رمز PHP:
<?
$prog=2;
if($prog==1){
echo "passed";
}
?>

3- جملة if … else [اذا كان …. فــ …… واذا لم يكن فــ ….]
تتشابه تلك الجمله مع الجمله السابقه كثيرا ولكنها تختلف فى أنها ستنفذ العمليات فى حالة تحقق الشرط وتنفذ عمليات أخرى فى حالة عدم التحقق .
فسيكون هنا على البرنامج أن يتأكد من الشرط المكتوب ويوجد لدينا حالتان اما أن يتحقق الشرط وهنا سيتم الدخول الى الجمله وتنفيذ ما بداخلها كما تم تعريفه بالسابق
وان لم يتحقق الشرط فانه سيقوم بالدخول الى الجمله وتنفيذ ما بعد كلمة else وينتقل الى نهاية الجمله الشرطيه ومن ثم ينتقل الى تنفيذ الأوامر الى تقع خارجها .

الصيغه العامه لجملة if … else 

رمز PHP:
<?
if(الشرط الذى يتم اختباره){
//ضع هنا الكود الذى تريد تنفيذه عند تحقق الشرط
}else{
//ضع هنا الكود الذى سيتم تنفيذه عند عدم تحقق الشرط
}
?>

واذا أخذنا مثال على تلك الجمله :

رمز PHP:
<?
$prog=1;
if($prog==1){
echo "Passed";
}else{
echo "Not Passed";
}
?>

تابع معى … اذا قمت بتغيير قيمة المتغير من واحد الى اتنين وقمت بتنفيذ الكود فانه سيقوم بطباعة كلمة Not Passed وذلك لعدم تحقق الشرط المتواجد داخل الاقواس ويتضح هذا من المثال التالى :

رمز PHP:
<?
$prog=2;
if($prog==1){
echo "Passed";
}else{
echo "Not Passed";
}
?>

4- جملة if … elseif … else[اذا كان …. فــ …… واذا كان…. فــ ….. واذا لم يكن فـ ….]
تتشابه أيضا تلك الجمله مع الجمل السابقه كثيرا ولكنها تختلف فى أنها ستختبر عدة شروط وفى حالة تحقق الشرط سيتم تنفيذ الكود الموجود بالداخل وفى حالة عدم تحقق أى شرط من الشروط فسيتم تنفيذ ما بعد else .

الصيغة العامه لجملة if … elseif … else

رمز PHP:
<?
if(الشرط الذى يتم اختباره){
//ضع هنا الكود الذى تريد تنفيذه عند تحقق الشرط
}elseif(الشرط الثانى){
//ضع هنا الكود الذى سيتم تنفيذه عند تحقق الشرط الثانى
}elseif(الشرط الثالث){
//ضع هنا الكود الذى سيتم تنفيذه عند تحقق الشرط الثالث
}else{
//ضع هنا الكود الذى سيتم تنفيذه فى حالة عدم تحقق أى شرط من الشروط السابقه
}
?>

ولنأخذ مثال على تلك الجمله

رمز PHP:
<?
$prog=1;
if($prog==0){
echo "Zero";
}elseif($prog==1){
echo "First";
}elseif($prog==2){
echo "Second";
}else{
echo "None of All";
}
?>

والآن معى قم بتغيير قيمة المتغير $prog

ولاحظ التغيير فى تنفيذ الكود . 
5- جملة switch

فعلينا أن نقوم باستخدام الداله if و else عدد من المرات مما يجعل الكود كبيرا جدا ومعقدا الى حد كبير مما يجعل عملية صيانه البرنامج تعتبر عمليه شاقه ومرهقه . نفترض أن لدينا متغير ونريد أن نختبر قيمته اذا كان مثلا قيمته هى ابراهيم أم سعيد أم عبدالله 
لذا جاءت الينا الجمله switch لكى تجعل من عملية كتابة مثل تلك التعابير هى مهمه سهله

الصيغه العامه لجمله switch 

رمز PHP:
<?
switch (اسم المتغير الذى سيتم اختبار قيمته) {
case القيمة الأول :
//نفذ ما هو موجود هنا فى حالة تحقق القيمه الأولى
break;
case القيمه الثانيه:
//نفذ ما هو موجود هنا فى حالة تحقق القيمه الثانيه
break;
case القيمه الثالثه:
//نفذ ما هو موجود هنا فى حالة تحقق القيمه الثالثه
break;
}

?>

ولنأخذ مثال توضيحى عليها : 

رمز PHP:
<?
$prog=1;
switch ($prog) {
case 1:
echo "First";
break;
case 2:
echo "Second";
break;
case 3:
echo "Third";
break;
}
?>

فى هذا المثال اعلنا المتغير $prog ووضعنا به القيمه واحد واستخدمنا الجمله switch لعمل الجمله الشرطيه
لاحظ : يجب وضع كلمة

رمز PHP:
break;

بعد نهاية كل احتمال

6- استخدام المعاملات المنطقيه
تستخدم المعاملات المنطقيه للدمج بين عدة شروط فى نفس الوقت وهى تشبه فى نظرية عملها البوابات المنطقيه التى تدرس فى الكهرباء لتنفيذها فيوجد لدينا هنا ثلاث معاملات منطقيه يتم استخدامهم وهم على الترتيب :

  • المعامل AND ونظيره &&
  • المعامل OR ونظيره ||
  • المعامل NOT ونظيره !

أولا : المعامل AND ونظيره && : 
ومعناه أنه يتم التأكد من كافة الشروط الموجوده فى الداله الشرطيه والمثال التالى سيوضح ما المقصد :

رمز PHP:
<?
$a=5;
$b=9;
if($a==5 && $b==9){
echo "لقد تحققت جميع الشروط";
}else{
echo "لم تتحقق جميع الشروط";
}
?>

ومعناه أنه اذا كانت قيمة المتغير الأول تساوى 5 والثانى تساوى 9 قم بتنفيذ الكود التالى له وفى حالة عدم تساوى احدى القيمتان قم بتنفيذ ما بعد else

هذا معناه أنه يجب أن يتحقق كل الشروط وفى حالة عدم تحقق احد الشروط لم ينفذ الكود وسيتم تنفيذ ما بعد else . 
ثانيا : المعامل OR ونظيره || : 
يقوم بالتحقق من عدة شروط فاذا تحقق أحد الشروط فانة يقوم بتنفيذ الكود

رمز PHP:
<?
$a=5;
$b=9;
if($a==6 || $b==9){
echo "لقد تحقق أحد الشروط";
}
?>

ومعناه اذا كان المتغير الأول يساوى 6 أو المتغير الثانى مساوى ل 9 فقم بتنفيذ الكود الذى يليه.

ثالثا : 
المعامل NOT ونظيره ! :
يقوم بالتأكد من أن هناك قيمه غير صحيحه لكى يتم تنفيذ شئ معين والمثال التالى يوضح ذلك :

رمز PHP:
<?
$a=5;
if ($a!=5){
echo "welcome";
}
?>

فى هذا المثال قمنا بالتأكد من أن قيمة المتغير لا تساوى 5 وفى حالة عدم التساوى قم بتنفيذ الكود التالى له .

7- مقدمة الى حلقات التكرار
جميع الأكواد والسطور التى قمت بكتابتها سابقا هى تنفذ على مره واحده فقط أى يتم تنفيذها فى الكود مره واحده فقط فنفترض أنك ترد أن تنفذه مرتان او ثلاث فما سيتبادر الى ذهنك فعله هو عملية كتابة الكود 3 مرات أو 4 رات على حسب عدد المرات التى تريد أن تنفذ بها الكود .

الى هذا جميل جدا ولكن ماذا ستفعل اذا كنت تريد أن تنفذ الكود الخاص بك عدد 100 مره أو تنفذه عدد غير معروف من المرات يعتمد على شئ آخر .

فهل ستقوم بكتابة الكود 100 مره  أم ستقوم بتغيير الكود البرمجى عند كل مره يتم استدعاؤها 
ستكون عملية مستحيله جدا

ولهذا جاءت حلقات التكرار لكى تقوم بتلك المهمه وهى تنفيذ الكود عدد كبير من المرات وبعدد أسطر قليل جدا أو تنفيذ الكود بعدد غير معروف من المرات .
ولينا هنا 4 أنواع من الحلقات التكراريه وهى :

  • الحلقه for
  • الحلقه while
  • الحلقه do….while
  • الحلقه foreach

8- جملة الحلقه التكراريه for :
وفيه يتم تنفيذ الكود مادام الشرط متحققا فى بداية الحلقه وهنا نقوم بتحديد طريقة تصرف الشرط أى نحدد ما يلى :

  • تحديد بداية الشرط
  • تحديد شرط الحلقه
  • تحديد طريقة التصرف

الصيغة العامه للحلقه التكراريه for :

رمز PHP:
<?
for (بداية الحلقه ; شرط التحقق ; طريقة تصرف الحلقه ){
// نفذ الكود المتواجد هنا ما دامت الحلقه فى طور التنفيذ
}
?>

والآن لنأخذ مثال توضيحى على ذلك :

رمز PHP:
<?
for ($i=0 ; $i<5 ; $i++ ){
echo $i;
}
?>

فى هذا المثال يتضح أننا قمنا بحجز عداد كبداية للحلقه وهو المتغير i واعطينا له القيمه الابتدائيه وهى صفر وفى تحديد شرط الحلقه قمنا بتحديد أن الشرط للتنفيذ هو أن يكون قيمة المتغير أقل من 5
أما عن طريقة تصرف الشرط هى عملية الزيادة بمقدار الواحد 

قم بتجربة الكود على حاسبك وقم بتغيير القيم مثل القيم الابتدائيه وشرط التشغيل وطريقة التصرف

9- جملة الحلقه التكراريه while :
حلقه شائعة الاستخدام فى عمليات قواعد البيانات وفيها يتم التحقق من الشرط ثم تنفيذ الكود ثم العوده الى الشرط مره أخرى والتحقق من عمله أم لا وفى حالة عمله ينفذ الكود مره أخرى ويعود الى الشرط مره أخرى وهكذا ….

الصيغه العامه لحلقة while :

 

رمز PHP:
<?
while (الشرط الذى سيتم اختباره){
//الكود الذى سيتم تنفيذه عند تحقق الشرط
}
?>

مثال توضيحى على الحلقه :

رمز PHP:

<?
$i=0;
while ($i<5){
echo $i;
$i++;
}
?>

وهنا تم حجز العداد i ووضعنا به القيمه الابتدائيه صفر وفى بداية الحبقه يتم الاختبار اذا كان قيمة العداد أقل من الخمسه أم لا
وفى حاله كونها أقل من خمسه ينفذ الكود
وعندما يكون الشرط غير متحقق لا ينفذ الكود ولكنه يتجه الى باقى الكود الموجود بالصفحه ويترك الحلقه التكراريه
قم بتجربة الكود على حاسبك وقم بتغيير شرط التشغيل.

10- جملة الحلقه التكراريه do…while :

هذا يعنى أن الكود يتم تنفيذه مره واحده على الاقل .
لا تختلف عن سابقتها الا انه يتم تنفيذ الكود أولا ثم بعد ذلك يتم اختبار الشرط وفى حالة التحقق يرجع مره أخرى للكود وينفذه مره ثانيه وهكذا حتى يصل الى حاله عدم تحقق الشرط . 
الصيفه العامه لحلقه do…while :

رمز PHP:
<?
do {
//نفذ هذا اولا
}while(الشرط);
?>

مثال توضيحى :

رمز PHP:
<?
$i=0;
do {
echo $i;
$i++;
}while($i<5);
?>

هذا المثال هو نفسه المثال الذى قمنا بانشؤه فى الحلقه while ولكن بعد تنفيذه ععلى الحلقه do… while

11- جملة الحلقه التكراريه foreach :
فى الواقع تستخدم تلك الحلقه فى التعامل مع المصفوفات وهى سيتم دراستها بشكل مفصل فى الدروس المقبله لأهميتها الشديده فى التعامل مع الأكود .
ولذلك سنأجل التعامل معها حين تطرقنا الى المصفوفات .

الى هنا ينتهى الدرس الثالث