Swift 03 : الجمل الشرطية (if , switch)
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
على بركة الله تعالى نستكمل ما بدأنا به من مواضيع حول لغة 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
}
اتمنى من آن آكون قد اوجزت في الشرح والتوضيح
اي استفسار أنا بالخدمة واعتذر عن اي لبس قد وقعت به في اثناء الشرح
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !