
כמו הרבה אפליקציות ושפות תכנות אחרות, Scala גם יש לה בעיות החלטה מוגבלות באופן הגיוני if-else
. הביטוי if
מופעל אם המצב המובנה הוא אמיתי, אם לא, אז מופעל ביטוי else
(רק אם נמצא else
בתוכו).
בדרך כלל, הביטוי else
לא מופעל על ידי מצב, הוא מופעל רק כשהביטוי if
הוא שקר. כך שבקיצור, ביטויי if-else
מורכבים מבעיות בין אמת לשקר שעובדים על בסיס עקרונות True-False
.
ישנם סוגים רבים של ביטויי if-else
:
– ביטוי if
,
– ביטוי if-else
,
– ביטוי נטסט if-else
,
– ביטוי if-else-if-else
.
לפני שיתחילו ללמוד את הביטויים if-else
השונים, הבה נסדר במהירות את הסביבה של Scala עבור מקצועים עם מאחורים על ידי הבאות הצעדים.
הערה: ודאו שיש לך Java מו Installed, אם לא, אז בבקשה עיצב את ההוראות שנותנות כאן.
– \$ brew update
– \$ brew install scala
– \$ brew install sbt
– \$ echo '-J-XX:+CMSClassUnloadingEnabled' >>
/usr/local/etc/sbtopts
– הוסף את '-J-Xmx2G' לקובץ /usr/local/etc/sbtopts
ברגע שסיימת את השלבים האלה, בדקו במהירות את ההתקנה על-ידי כתיבת scala
במסוף, כדי לראות פלט כפי שמוצג בתחתית.

שים לב: במדריך זה, תכתבו את הקוד בעורך vim
ותרצו אותו מהמסוף.
תנאי if בScala
הביטוי if
מורכב מביטוי שהוא בוליאני
(כן או לא). אם הביטוי הולך לאמת, אז הקוד הטמון בתוך הביטוי if
יורך. אם הביטוי שגוי, אז השורה הראשונה אחרי סוף הביטוי if
תורגל.
if(boolean expression) { execute if boolean expression holds true }
ראשית, תגדרו אובייקט
או קלס
בשם scala_if
. בתוך האובייקט הזה תקבעו את הפונקציה הראשית main
ותכתבו את גוף הקוד. תיצור משתנה שלמספר שלם x
עם ערך 20. לבסוף, מגיע המרכז של הקוד שהוא הביטוי if
עם התנאי x<=20
ומאחר ול-x
יש ערך 20, הבלוק בתוך הביטוי if
יורך.
שמרו את הקוד הבא תחת שם if.scala
.

כדי לרץ את הקוד העליון, כל מה שצריך לעשות זה להקליד scala if.scala
ואתם תראו פלט כפי שמוצג בתחתית.

תנאי if-else בScala
כמו ההצהרה if
, ההצהרה if-else
כוללה ביטוי המהווה ערך בוליאני
(כן או לא). אם ההצהרה if
היא נכונה, אז נועדת הקוד בתוך ההצהרה if
תועדר, אם זה לא נכון תועדר הנועדת הקוד בתוך ההצהרה else
.
if(boolean expression) { execute if boolean expression holds true } else { execute block if boolean expression (if statement) holds false }
הקוד הבא יועדר את ההצהרה else
כי המשתנה x
יש לו ערך גדול יותר מ-20, הנועדת הקוד בתוך ההצהרה else
תועדר.
בואו נשמור את הקוד הבא בשם if-else.scala
.

כדי להריץ את הקוד העליון, כל מה שעליך לעשות זה להקליד scala if-else.scala
ואתה אמור לראות פלט כפי שמופיע מתחת.

הצהרת Scala נסטדדת if-else
כמו שבדרך כלל יש לך הצהרה if
שמלווה את ההצהרה else
, ההצהרה הנסטדדת if-else
גם דומה ברוח. בניסטדדת if-else
, אפשר להשתמש בהצהרה אחת if
או else-if
בתוך הצהרה אחרת if
או else-if
.
בחלק הבא, תביט בהצהרות else-if
.
if(boolean expression 1) { execute block 1 if boolean expression 1 holds true** if(boolean expression 2) { execute block 2 if boolean expression 1 and 2 holds true } }
הקוד הבא משתמש בהצהרות if-מקונטנדד
כדי להשוות ארבעה משתנים מספריים בשמות $v$, $x$, $y$, ו$z$ ולבסוף, אם כל ההצהרות נכונות, תודפס פלט במסוף.
בואו נשמור את הקוד הבא בשם nested-if-else.scala
.


הצהרת Scala else-if
המשפט else-if
מושך יותר בהשוואה למשפטים if-else
. בשונה מהם, במשפטים if-else
הelse
מובא אחר משפט if
, הelse-if
הוא בעצמו משפט אחד. הוא מעניק לך החופש לבחון מצבים מגוונים.
אך יש כמה חוקים קטנים שעליך להשאר בחשבון בזמן שימוש במשפטים else-if
:
-
משפט
else-if
יכול להיות רק אחרי משפטif
, משפטif
יכול לקבל אפס או יותרelse-if's
. -
בדומה,
else
יכול להיות רק אחרי משפטif
וelse-if
, משפטif
יכול לקבל אפס או אחדelse
. -
אחרי שה
else-if
מצליח, אף אחד מהelse-if's
השארים אוelse's
לא יישקרב וייעלם ישירות.
if(boolean expression 1) { execute block 1 if boolean expression 1 holds true } else-if(boolean expression 2) { execute block 2 if boolean expression 2 holds true } else { execute this block if all of the above statements holds false }
סיכום
מברך על הסיום של ההדרכה.
מדריך זה היה נקודת פתיחה טובה למתחילים שמעוניינים ללמוד את הצהרות התנאי IF ELSE ב-Scala.
תרגיל קטן עבורכם הוא לכתוב קטע קטן של קוד עבור הצהרת else-if
ב-Scala ולנסות להבין כיצד הצהרות אלו שונות מאחרות.
מקורות:
אנא הרגישו חופשיים לשאול כל שאלה הקשורה למדריך זה בסעיף התגובות למטה.