פקודת IF
הקדמה
בקטע זה יוסברו הפקודות והאופן השימוש בפקודת ה-IF כפי שהן מוצעות בשפת Wave. פקודת IF מהווה מבנה בקרה בסיסי אשר מעריך תנאי ומבצע בלוק קוד מסוים רק כאשר התנאי נכון.
באמצעות כך, התכנית מתעלת מעבר לביצוע זרימה מלמעלה למטה, ומסוגלת לבצע פעולות שונות בהתאם למצבים ותנאים. פקודת IF היא מרכיב מרכזי בכל תכנית והיא משמשת ליישום ענפי לוגיקה ושליטה בזרימה.
מבנה בסיסי
פקודת IF מעריכה תחילה את הביטוי התנאי, ומבצעת את בלוק הקוד הכלוא בסוגריים מסולסלים {} רק כאשר התוצאה היא אמת (True).
במקרה שהתנאי שגוי (False), הבלוק הרלוונטי נדלג והתכנית ממשיכה עם הקוד הבא.
ב-Wave, המבנה הבסיסי של פקודת IF הוא כדלקמן.
if (condition) {
// קוד לביצוע אם התנאי הוא אמיתי
}
בביטוי התנאי ניתן להשתמש באופן חופשי במפעילים השוואתיים או לוגיים.
לדוגמה, ניתן להשוות בין ערכים באמצעות מפעילים השוואתיים כדוגמת ==, !=, <, >, <=, >=, ולהשתמש במפעילים לוגיים כגון &&, ||, ! על מנת לשלב בין תנאים שונים.
על תוצאת הביטוי התנאי להערך בהכרח כאמת או שקר, ובמקרה שהתנאי שקרי, בלוק ה-IF לא יבוצע.
דוגמה
להלן דוגמה לצורת IF פשוטה ביותר.
var temperature :i32 = 30;
if (temperature > 25) {
println("מזג האוויר חם.");
}
בקוד שלעיל נבדק התנאי האם הערך של המשתנה temperature גדול מ-25.
אם התנאי נכון תודפס ההודעה "מזג האוויר חם.", ואם התנאי שגוי לא תבוצע כל פעולה.
כך, נעשה שימוש בפקודת IF כאשר יש צורך להפעיל קוד רק בעת שהתקיים תנאי מסוים.
פקודת IF-ELSE
במקרה שיש צורך להפעיל קוד גם כאשר התנאי לא נכון, ניתן להוסיף סעיף ELSE לפקודת IF. פקודת IF-ELSE מאפשרת בחירה בין שני בלוקי קוד לביצוע מותנה בתוצאה של הביטוי התנאי.
הפסקה הבסיסית מוצגת להלן.
if (condition) {
// קוד לביצוע אם התנאי הוא אמיתי
} else {
// קוד לביצוע אם התנאי הוא שקר
}
כאשר התנאי נכון, יבוצע בלוק IF, וכאשר התנאי שגוי, יבוצע בלוק ELSE. רק אחד מתוך שני הבלוקים יבוצע; הם אינם מתבצעים בו-זמנית.
הנה דוגמה של פקודת IF-ELSE.
var score :i32 = 70;
if (score >= 60) {
println("עברת!");
} else {
println("זה נכשל.");
}
בקוד הזה, הודעות שונות יודפסו בהתאם לכך אם score הוא מעל 60.
אם התנאי נכון, יודפס "עברת!", אחרת יודפס "לא עברת.".
הצהרת IF מקוננת
ניתן להשת מש בפקודת IF בתוך פקודת IF אחרת, וזה מכונה הצהרת IF מקוננת. הצהרת IF מקוננת יעילה כאשר יש צורך להעריך מספר שלבים של תנאים באופן רציף.
הנה דוגמה של הצהרת IF מקוננת שמדפיסה תוצאות שונות לפי הציון.
var score :i32 = 85;
if (score >= 60) {
if (score >= 90) {
println("ציונים מעולים!");
} else {
println("עברתי.");
}
} else {
println("זה נכשל.");
}