Swift 03 : الجمل الشرطية (if , switch)

Abatherمنذ 7 سنوات

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

على بركة الله تعالى نستكمل ما بدأنا به من مواضيع حول لغة Swift

لهذا اليوم سوف نتطرق للجمل الشرطية، هذه الجمل تقوم باتخاذ قرار

اما القيام بما داخلها او لا ويتحقق ذلك بوضع شرط (Bool) لها

اولا: if

خير سبيل لتوضيح المراد هو المثال لنأخذ هذا المثال:


let a : Int = 1

if(a < 2){
  print("الرقم أقل من 2")
}

في مثالنا هذا لدينا if الشرطية قبل الشروع في شرح معناها 

لنتطرق لشكلها العام if الشرطية تبدء بـ if

ومن بعدها (...) يوضع داخلهما الشرط

ومن ثم {...} وهنا نظع الأكواد اللتي نريد القيام بها في حال تحقيق الشرط

بكل بساطة في مثالنا السابق 

إذا كان  a أصغر من 2 فقم بطباعة "الرقم أقل من 2"

الشرط لدينا هنا (2 > a) 

وهذا سيتم التحقق منه في كل مرة، اذا كان "true" فعندها 

يتم الدخول إلى ما تحتويه if 

اذا هذا الشرط يعتبر مفتاح لما داخل if 

اما ما يوجد داخل {...} فمن الممكن ان يكون سطر إلي عشرات الأسطر

الشروط من الممكن ان تكون اي نوع من الأنواع اللتي تطرقنا لها سابقاً 

في مثالنا هذا في حال عدم تحقق الشرط سوف يهمل ما داخل if ولن يقوم بشىء

ماذا لو اردنا ان نقوم بشيء آخر في حال عدم تحقق الشرط؟!

هنا يأتي دور else لنأخذ هذا المثال


if(a <= b){
	.....
}
else{
  ....
}

في هذا المثال لدى if هذا الشرط(a<=b) 

اذا تحقق هذا الشرط فعندها سنقوم بقراءة ما داخل if وإن لم يتحقق سنقوم بقراءة ما بداخل else

واحد فقط من هذا الأكواد سيتم قراءته وليس كلهما.

ليس هذا كل شيء لكن بإمكاننا أن نضع أكثر من شرط واحد  في عدة جمل عن طريق التالي:


if(a < b){
  print("a أكبر من b")
}
else if (a > b){
  print("b إكبر من a")
}

else {
 print ("العددان متساويان") 
}

كما في هذا المثال في حال اردنا وضع اكثر من شرط فإننا نستخدم else if 

الترتيب هنا مهم سنبدأ بأول if إذا لم يتحقق شرطها نذهب لما بعدها وهكذا

أما في حال تحقق الشرط فإننا نقوم بما داخل if ونترك جميع الشروط اللتي بعدها

للتوضيح أكثر لنفرض بأننا نريد كتابة كود لحساب معدل طالب جامعي من اصل 4 

سيكون الكود كما التالي:



var grade : Double = 85.0
var outOf4 : Double = 0.0
if(grade >= 95){
    outOf4 = 4
}
else if (grade >= 90){
    outOf4 = 3.75
}
else if (grade >= 85){
    outOf4 = 3.5
}
else if (grade >= 80){
    outOf4 = 3.0
}
else if (grade >= 75){
    outOf4 = 2.5
}
else if (grade >= 70){
    outOf4 = 2.0
}
else if (grade >= 65){
    outOf4 = 1.5
}
else if (grade >= 60){
    outOf4 = 1.0
}
else if (grade < 60){
    outOf4 = 0.0
}
else {
    print ("درجة غير صحيحة")
}

في قطعة الكود هذه سيتم البحث بالتدريج عن الدرجة المناسبة لوضع المعدل المناسب

في مثالنا سنبدأ بـ أول if ولن يتحقق الشرط فنذهب إلى ما بعدها وهكذا حتا نصل إلى الشرط المتحقق

نغير قيمة outOf4 إلى القيمة الجديدة ونهمل جميع الشروط اللتي بعدها.

قبل ان ننتقل إلى النقطة التالية لنفرض آننا نريد إجاد أصغر رقم من بين رقمين فعندها سوف

نقوم بكتابة الكو التالي:


var numa : Int = 7
var numb : Int = 3
var min : Int

if (numa < numb){
    min = numa
}
else{
    min = numb
}

في هذا الكود سوف نقوم بتفحص إذا كان numa اصغر من numb في حال تحقق

هذا الشرط سوف نقوم بوضع قيمة numa في min واللذي سيكون اصغر عدد، وإلا سنضع

فيمة numb في min واللذي إما سيكون اصغر من numa او مساوي له.

ماذا لو كان لدينا طريقة اسهل واقصر لنقوم بهذا الكود؟ 

لننظر إلى هذا الكود: 


var numa : Int = 7
var numb : Int = 3
var min : Int

min =  numa < numb ? numa : numb

في الحقيقة هذا الكود يقوم بعمل الكود السابق تماماً بدون اي اختلاف

لنقم ببعض التفصيل

اولا سنضع قيمة لـ min  هذه القيمة مربوطة بشرط واللذي هو numa < numb 

بعد انتهاء كتابة شرطنا نضع علامة استفهام و من ثم

نضع القيمة في حال تحقق شرط بعدها : والقيمة الاخرى في حال عدم تحققه

min = الشرط ؟ (في حال الشرط صحيح) : (في حال الشرط خاطأ)

 

ثانياً: switch

مثل سابقتها تستخدم switch للتحقق من شرط ما 

شكلها العام كالتالي:


switch(متغير){
  case الشرط:
  case الشرط:
  default:
}

نبدأ بكتابة switch ونضع القيمة اللتي نريد التحقق منها بين القوسين

ومن ثم نكتب الحالت اللتي نريده في case ولنا الخيار في كتابة العدد الذي نريده من الحالات

وفي الاخير نضع الحالة الافتراضية.

على عكس if فإن switch تقوم بالبحث عن الشرط المتحقق وعندما تجده تقوم القيام بما داخل الحالة

ليس هذا وحسب وإنما تقوم بالقيام بما داخل جميع الحالات اللتي بعد هذه الحالة

لنفرض ان شرطنا تحقق في case 3 عندها سيقوم الكود بالقيام بما داخل case 3 و case 4 إلى النهاية

ولتفادي حدوث هذا نقوم بوضع break بعد نهاية كل حالة كما في التالي:


switch (المتغير){
  case a :
    break
    case b :
    break
    
    case c :
    break
    
    default :
    break
    
}
    

في هذه الحالة سيتم تنفيذ ما في داخل الحالة فقط وليس كل ما بعدها 

كذلك نستخدم break في حال اردنا التخلص من default وكنا لا نريد وضع حالة افتراضية

ملاحظة: الحالة الافتراضية سوف يتم قراءة ما بداخلها في حال لم يتحقق احد الحالات.

 

الان لنأخذ هذا المثال اللذي سنقوم بتحديد المعدل عن طريق أخذ الحروف a+ , a ... f


var grade : String = "a"
var outOf4 : Double

switch (grade){
case "a+" :
    outOf4 = 4
    break
    
case "a" :
    outOf4 = 3.75
    break
    
case "b+" :
    outOf4 = 3.5
    break
    
case "b" :
    outOf4 = 3.0
    break
    
case "c+" :
    outOf4 = 2.5
    break
    
case "c" :
    outOf4 = 2.0
    break
    
case "d+" :
    outOf4 = 1.5
    break
    
case "d" :
    outOf4 = 1.0
    break
    
case "f" :
    outOf4 = 0.0
    break
    
default:
    break
    
}

 

اتمنى من آن آكون قد اوجزت في الشرح والتوضيح

اي استفسار أنا بالخدمة واعتذر عن اي لبس قد وقعت به في اثناء الشرح

كلمات دليلية:
4
إعجاب
30438
مشاهدات
1
مشاركة
1
متابع
متميز
محتوى رهيب

التعليقات (2)

NAJIALFARIDI:

بارك الله فيك يالغالي

Jamal rshad:

عمل ممتاز

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !