بفضل الله في سلسة من المقالات سنتناول نشر دروس تعليم سي شارب C# ستكون شاملة ووافية للمبتدئين والمستوى المتوسط . سلسلة مقالات مأخوذة من كوداتي نتمنى أن تكون مفيدة لجميع الدارسين . وفي هذا الدرس سنتناول الجمل الشرطية في لغة سي شارب C# Condition Statement .
سلسلة دروس تعلم سي شارب C# بالعربية
تم شرح فيما سبق :-
- الدرس الأول : مقدمة عن السي شارب #C
- الدرس الثاني : تركيب الجملة في سي شارب Syntax
- الدرس الثالث : التعليقات في سي شارب Comments
- الدرس الرابع : الطباعة في سي شارب Output
- الدرس الخامس : المتغيرات في سي شارب Variables
- الدرس السادس : المدخلات في سي شارب Inputs
- الدرس السابع : العمليات الرياضية في سي شارب Arithmetic Operations
- الدرس الثامن : العمليات المنطقية في سي شارب Logic Operations
الدرس التاسع : الجمل الشرطية في سي شارب Condition Statement
في هذا الدرس سنتاول الجمل الشرطية في السي شارب C#
- انواع الجمل الشرطية
- الشروط المتداخلة Nested if
- Statements Switch
الجمل الشرطية هي مجموعة من الأوامر البرمجية التي لا تُنفذ إلا عندما يتحقق شرط ما ويستخدم الif للتعامل مع الجمل الشرطية .
انواع الجمل الشرطية
- if
- if..else
- if..elseif..else
if
if (condition) {
// هنا يتنفذ الكود عندما يتحقق الشرط
}
if..else
if (condition) {
//يتنفذ عندما يتحقق الشرط
}else{
//يتنفذ عندما لا يتحقق الشرط
}
if..elseif..else
if (condition1) {
//يتنفذ عندما يتحقق الشرط الاول
}else if (condition2) {
//يتنفذ عندما يتحقق الشرط الثاني
}else{
//يتنفذ عندما لا يتحقق ولا شرط
}
أمثلة على IF الشرطية
مثال اول في هذا المثال عرفنا متغيرين واعطينا لكل منهما قيمة 4 وقمنا بعمل شرط وهو اذا تساوى قيمة المتغيرين نفذ ما داخل الشرط
using System;
namespace Example
{
class Program
{
static void Main(string[] args)
{
int a=4;
int b=4;
if(a==b)
{
Console.WriteLine(“االقيمة متساوية”);
}
}
}
}
Output :
االقيمة متساوية
مثال ثاني في هذا المثال عرفنا متغير نصي واعطينا قيمة نصية welcome ثم استخدمنا الدالة length
وهي دالة تعيد لنا عدد احرف المتغير النصي وقمنا بعمل شرط وهو اذا عدد احرف المتغير النصي اكبر من 5 نفذ ما داخل الشرط
string str=”welcome”;
if(str.Length>5)
{
Console.WriteLine(“طول النص اكبر من 5 احرف”);
}
Output :
طول النص اكبر من 5 احرف
أمثلة على IF Else الشرطية
وتعني اذا لم يتحقق الشرط فنفذ ماهو ضمن ال else .
مثال يسمح للطالب بادخال الدرجة ومعرفة هل هو ناجح او راسب
int grade;
Console.Write(“Enter Degree :”);
grade = Convert.ToInt32(Console.ReadLine());
if(grade>=50)
{
Console.WriteLine(“ناجح”);
}
else
{
Console.WriteLine(“راسب”);
}
Output :
Enter Degree : 70
ناجح
Output :
Enter Degree : 39
راسب
أمثلة على IF ElseIf الشرطية
وتعني اذا لم يتحقق الشرط الاول فأنتقل الى الشرط الثاني واذا لم يتحقق الشرط الثاني فأنتقل الى الشرط الثالث وهكذا حتى يتم تجربة كل الشروط واذا لم يتحقق ولا شرط ينفذ ما هو موجود ضمن الelse الأخيرة .
مثال اول يسمح للطالب بادخال الدرجة ومعرفة التقييم
int degree;
Console.Write(“Enter Degree :”);
degree =Convert.ToInt32(Console.ReadLine());
if(degree>=90)
{
Console.Write(“ممتاز”);
}
else if(degree>=80)
{
Console.Write(“جيد جدا”);
}
else if(degree>=70)
{ Console.
Write(
“جيد”);
}
else if(degree>=60)
{
Console.Write(“متوسط”);
}
else if(degree>=50)
{
Console.Write(“حالفك الحظ”);
}
else
{
Console.Write(“راسب”);
}
Output :
Enter Degree : 64
متوسط
Output2 :
Enter Degree : 34
راسب
Output3 :
Enter Degree : 87
جيد جدا
مثال ثاني في هذا المثال عملنا داخل كل if شرطين بينهما علامة && – AND والتي ترجع صحيح اذا تحقق الشرطين .
int degree;
Console.Write(“Enter Degree :”);
degree =Convert.ToInt32(Console.ReadLine());
if(degree>=90)
{
Console.Write(“ممتاز”);
}
else if(degree>=80 && degree<90)
{
Console.Write(“جيد جدا”);
}
else if(degree>=70 && degree<80)
{
Console.Write(“جيد”);
}
else if(degree>=60 && degree<70)
{
Console.Write(“متوسط”);
}
else if(degree>=50 && degree<60)
{
Console.Write(“حالفك الحظ”);
}
else
{
Console.Write(“راسب”);
}
Output :
Enter Degree : 99
ممتاز
Output2 :
Enter Degree : 22
راسب
الشروط المتداخلة Nested if
وتعني اذا تحقق شرط ما ارتبط مع شرط اخر داخل هذا الشرط ليقوم بالتحقق منه .
Nested if
if (condition) {
if (Nested condition) {
//يتنفذ عندما يتحقق الشرط الداخلي
}else{
//يتنفذ عندما لا يتحقق الشرط الداخلي
}
}else{
//يتنفذ عندما لا يتحقق الشرط الرئيسي
}
مثال
int grade;
Console.Write(“Enter Degree :”);
grade = Convert.ToInt32(Console.ReadLine());
if(grade>=50)
{
Console.Write(“ناجح”);
}
else
{
if(grade>=45)
{
Console.Write(“ناجح بقرار”);
}
else
{
Console.Write(“راسب”);
}
}
Output2 :
Enter Degree : 52
ناجح
Output :
Enter Degree : 48
ناجح بقرار
Output3 :
Enter Degree : 22
راسب
Statements Switch
تستخدم عبارة التبديل switch
لاختيار تنفيذ كتلة تعليمية من مجموعة كتل يعتمد الاختيار على محتوى القيمة المدخلة
Syntax
switch(expression) {
case x:
// code block
break;
case y:
// code block
break;
default:
// code block
break;
}
خطوات العمل :
- يتم ادخال القيمة ضمن switch
- مقارنة القيمة مع كل الكتل التعليمية
- تنفيذ الكتلة التي تتطابق مع القيمة المدخلة وترك الباقي
- break and default كلمات مفتاحية اختيارية
مثال اول لمعرفة اسم اليوم في الاسبوع تطابقاً مع الرقم
int day = 4;
switch (day) {
case 1:
Console.WriteLine(“Monday”);
break;
case 2:
Console.WriteLine(“Tuesday”);
break;
case 3:
Console.WriteLine(“Wednesday”);
break;
case 4:
Console.WriteLine(“Thursday”);
break;
case 5:
Console.WriteLine(“Friday”);
break;
case 6:
Console.WriteLine(“Saturday”);
break;
case 7:
Console.WriteLine(“Sunday”);
break;
default:
Console.WriteLine(“No Day”);
break;
}
Output :
Thursday
break يقوم باخبار مترجم اللغة ان يتوقف عن مقارنة باقي شروط عندما تتطابق الكتلة الخاصة به , اي وكما في المثال السابق قمنا باعطاء الرقم 4 الى المتغير day وعندما يصل الى الكتلة التعليمية التي قيمتها 4 يقوم بتنفيذ هذه الكتلة والbreak الموجودة داخل هذه الكتلة تمنع استمرار switch من التحقق من باقي الكتل
default وهي شبيهة بelse في الشروط ,وتعني اذا لم يتم تطابق القيمة مع اي من الكتل التعليمية فيتم تنفيذ ما داخل الdefault , ولنفرض في المثال السابق لو قمنا باعطاء المتغير day قيمة 10 فهنا سينفذ ما داخل الdefault لان لا يوجد لدينا حالة تتطابق مع day =10
مثال ثاني كما في المثال السابق لكن هنا المستخدم يقوم بادخال رقم اليوم من شاشة التنفيذ
Console.Write(“Enter Day :”);
int day;
day = Convert.ToInt32(Console.ReadLine());
switch (day) {
case 1:
Console.WriteLine(“Monday”);
break;
case 2:
Console.WriteLine(“Tuesday”);
break;
case 3:
Console.WriteLine(“Wednesday”);
break;
case 4:
Console.WriteLine(“Thursday”);
break;
case 5:
Console.WriteLine(“Friday”);
break;
case 6:
Console.WriteLine(“Saturday”);
break;
case 7:
Console.WriteLine(“Sunday”);
break;
default:
Console.WriteLine(“No Day”);
break;
}
Output :
Enter Day :7
Sunday
Output :
Enter Day :3
Wednesday
Output :
Enter Day :9
No Day