>الدرس الثامن : تركيبة if وتركيبة if/else

>

الدرس الثامن : تركيبة if وتركيبة if/else

في الدرس السابق تحدثنا عن عمليات اتخاذ القرار وأنها عادة ً ما تستخدم في تركيبة if أو تركيبة if/esle والتي هي محور حديثنا في هذا الدرس .
تحتوي لغة C# على ثلاث أنواع من تراكيب الاختيار :
if : تقوم باختيار الحدث وتنفيذه إذا كان الشرط صحيح (True) ، وتقفز عنه إذا كان الشرط خاطئ(false) ، وتدعى (single-selection structure) أي تركيبة الاختيار المنفرد .
if/else : تقوم باختيار الحدث وتنفيذه إذا كان الشرط صحيح (True) ، وتنفذ حدث آخر إذا كان الشرط خاطئ(false) ، وتدعى (double-selection structure) أي تركيبة الاختيار الثنائية .
switch : تقوم باختيار حدث وتنفيذه من بين مجموعة من الأحداث ، وتدعى
( multiple-selection structure ) .
وثلاث أنواع من تراكيب التكرار :
While , do/while , for , foreach وسنتعرف عليهم لاحقاً . أما في هذا الدرس فسنتعرف على تركيبة if وتركيبة if/else .

ملاحظة :
if , else , switch , While , do/while , for , foreach كلها كلمات محجوزة keywords
والجدول التالي يذكر قائمة الكلمات المحجوزة في C# :

 

وسنتعلم معظمها إن شاء الله خلال الدروس .
والآن بسم الله نبدأ :

1- تركيبة if للاختيار:
وهي عبارة عن احتمالين إما تنفيذ ما تحتوي في حالة true أو عدم التنفيذ false .
فلنفرض أن درجة للنجاح في امتحان هي 50 (الدرجة من 100) إذا ًَ خوارزمية التعبير أو الكود الوهمي (pseudocode) سيكون كما يلي :
 



if student’s grade is grater than or equal to 50

Print “Passed”

إذا كانت درجة الطالب أكبر أو تساوي 50 سيطبع ناجح ، وإذا كانت درجة الطالب أقل من 50 تهمل جملة if وتنفذ الجملة التالية لها .
والآن سنقوم بترجمة ال pseudocode إلى لغة C# حيث يفهمها ال Compiler :

C#
 if   ( studentGrade >= 50)

Console.WriteLine( “ Passed “) ;


والشكل التالي يوضح عمل تركيبة if :


2- تركيبة if/else للاختيار :
وهي أيضا ً احتمالين لكن في كلا الحالتين يتم تنفيذ حدث ، وهذا يساعد المبرمج على تحديد حدثين مختلفين بالاعتماد على نتائج الشرط True أم False .
فمثلا ً الكود الوهمي pseudocode التالي :

 



If student’s grade is greater than or equal to 50

Print “ Passed “

Else

Print “Failed “

سيطبع ناجح (Passed) إذا تحقق الشرط True وهو أن الدرجة أكبر أو يساوي 50 .
وسيطبع راسب (Failed) إذا لم يتحقق الشرط False وهو أن الدرجة أصغر من 50 .
أي أنه لا يهمل جملة if أبدا ً ولا يخرج منها حتى يطبع شيء .
والآن سنترجم هذا ال pseudocode إلى كود C# :

C#
if   (StudentGrade >= 50)

Console.WriteLine( “ Passed “) ;

else

Console.WriteLine( “ Failed “) ;


والشكل التالي يوضع طريقة عمل تركيبة if/else الاختيارية :
 


* وهناك طريقة أخرى لاستخدام تركيبة if/else وهي (? : ) ، وتحتوي على ثلاث جمل تنفيذية :
جملة الشرط ، جملة التنفيذ الأولى في حالة تحقق الشرط True ، جملة التنفيذ الثانية في حالة عدم تحقق الشرط False ، فإذا أعدنا صياغة جملة if السابقة تصبح كالتالي :
 

C#
Console.WriteLine( StudentGrade >=  50  ? “ Passed “   :    “ Failed “); 

* يمكن أيضا ً استخدام تركيبة if/else تركيبة if/else لتنفيذ جملة من عدد من الجمل ، فمثلا ً إذا فهمنا الكود الوهمي pseudocode التالي :



If student’s grade is greater than or equal to 90

Print “ A “

Else

If student’s grade is greater than or equal to 80

Print “ B “

Else

If student’s grade is greater than or equal to 70

Print “ C “

Else

If student’s grade is greater than or equal to 60

Print “ D “

Else

If student’s grade is greater than or equal to 50

Print “ E “

Else

Print “ F “

وحولناه إلى كود C# :

C#


if (studentGrade >= 90)

Console.WriteLine(" A ");

else

if (studentGrade >= 80)

Console.WriteLine(" B ");

else

if (studentGrade >= 70)

Console.WriteLine(" C ");

else

if (studentGrade >= 60)

Console.WriteLine(" D ");

else

if (studentGrade >= 50)

Console.WriteLine(" E ");

else

Console.WriteLine(" F ");

سيقوم بتنفيذ جملة واحدة فقط لا محالة .
ويمكن كتابة الكود بشكل أبسط :

C#


if (studentGrade >= 90)

Console.WriteLine(" A ");

else if (studentGrade >= 80)

Console.WriteLine(" B ");

else if (studentGrade >= 70)

Console.WriteLine(" C ");

else if (studentGrade >= 60)

Console.WriteLine(" D ");

else if (studentGrade >= 50)

Console.WriteLine(" E ");

else

Console.WriteLine(" F ");

وكلاهما يعطي نفس النتائج .
ملاحظة :
* كل جملة else مرتبطة بجملة if سابقة لها .
* إذا احتوت أي تركيبة على أكثر من جملة بداخلها يجب استخدام أقواس المجموعة ( { } ) ، أما إذا احتوت على تركيبة أخرى فقط فليس من الضروري استخدام أقواس المجموعة .

C#


if ( x > 5 )

if ( y > 5 )

Console.WriteLine( “ x and y are > 5 “ ) ;

else

Console.WriteLine( “ x is <= 5 “ ) ;

في هذه الحالة else تعتبر تابعة لل if الثانية أي سيتم تنفيذ الجملة الثانية x is <= 5 في حال y <= 5 وقيمة x > 5 ، أم إذا كانت x <= 5 فستهمل هذه الجملة كلها .
إذا أردنا جعل else تابعة لل if الأولى يجب وضع ما داخل ال if في أقواس كما يلي :

C#


if ( x > 5 )

{

if ( y > 5 )

Console.WriteLine( “ x and y are > 5 “ ) ;

}

else

Console.WriteLine( “ x is <= 5 “ ) ;


والآن تنفذ مجموع الجمل الأولى في حال x > 5 وجملة else في حال x <= 5 .
 

أضف تعليقاً

Filed under دروس C# - C Sharp

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s