الفصل الثالث: المتحكمات
If/Elsif/Else
من المؤكد أنك تملك بريدا إلكترونيا .. هل فكرت في كيفية استخدامه ؟ الإجابة نعم، بعد أن أدخل الأسم وكلمة المرور.
افترض أني مقدم خدمة البريد الإلكتروني ، وأنت تسجل الدخول عندي ، تابع هذه الخطوات:
إذا كان اسم المستخدم = شخص ما و كلمة المرور = كلمته السرية ، إذن
أدخله
غير ذلك
لا تسمح له بالدخول
دعنا نطبق الفكرة في مثال:
إذا المتغير name قيمته = “ahmed” سنينفذ الجزئية التي تأتي بعد then .
و ستكون الصورة العامة هكذا:
If condition as TRUE then
if_suite
End
دعنا نطبقها:
if name==”ahmed” then
puts “hi ahmed”
end
if 1<2 then
puts “math genius”
end
وتقدر أن تستخدمها كالتالي أيضا:
puts "Python time" if name=="StrikerX"
لنأخذ مثال بسيط، إذا أردنا أن نعلم طفل أنه إذا كان الطارق الباب يعرفه سيفتح له ، وإن لم يعرفه فلن يفتح له .. تعالى معنا نطبق مثال على هذا النحو:
family=”ahmed”
knocker=”ahmed”
if knocker==family then
#open the door
else
#keep it closed!
Unless
هى عبارة تساوي if not (إذا لم يكن)
puts "Not 10" unless x== 10
puts "Not 10" if not x== 10
سيكون الخرج هكذا:
العامل الثلاثي
معظم اللغات بتدعمه وهى short if/else
irb(main):077:0> name=="ahmed"? "Python" : "ruby"
=> "Python"
مثال على المتحكمات If/Elsif/Else
programmer=”StrikerX”
if programmer==”StrikerX” then
val= “Python time”
elsif programmer==”St0rM” then
val= “C time”
elsif programmer==”MutatioN” then
val= “Ruby time”
elseif programmer==”SpAwN” then
val= “Perl time”
else
val= “Who the hell are you?”
end
عبارة Case
أكيد لاحظت المثال السابق لغات مثل Ruby و Java، ..إلخ تقدم طريقة مختصرة لـ falling
programmer=”StrikerX”
val= case programmer
when “StrikerX”: “Python time”
when “St0rM” : “C time”
when “MutatioN” : “Ruby time”
when “SpAwN” :”Perl time”
else “who the hell are you ?”
end
لاحظ المثال التالي:
age=100
state= case age
when 1..5 : “Child”
when 6..12: “Kid”
when 13..17: “Teen”
when 18 .. 40: “Adult”
when 41..60: “waiting death”
when 61.. 120: “dead”
else “not human?”
end
لاحظ معنى 1..5 بأنها الفترة - المدى– بين 1 إلى 5