If-Else
חלק מהיחידה יסודות במסלול ה-Rust של Coddy. שיעור 25 מתוך 75.
if מאפשר לנו להריץ קוד מסוים אם תנאי מתקיים, אבל מה אם נרצה להריץ משהו אחר אם התנאי לא מתקיים?
לשם כך יש לנו את פקודת else:
let age: i32 = 15;
let status = if age >= 18 {
"Adult"
} else {
"Young"
};בדוגמה שלמעלה, age קטן מ־18, מה שאומר שהקוד שב־else יופעל ו־status יכיל את "Young".
אפשר אפילו להפוך את זה למשמעותי יותר באמצעות המשפט else if:
let age: i32 = 68;
let status = if age < 18 {
"Young"
} else if age >= 18 && age <= 65 {
"Adult"
} else {
"Old"
};כאן הוא בודק אם age קטן מ־18; אם לא, הוא ימשיך לתנאי הבא ויבדוק אם age נמצא בין 18 ל־65. אם גם התנאי הזה לא מתקיים, הוא יקבע את status לערך "Old".
אפשר להוסיף כמה משפטי else if שנרצה:
if condition1 {
code;
} else if condition2 {
code;
} else if condition3 {
code;
}
...אתגר
מתחיליםניתן לך קוד שמקבל כקלט מספר המציין את מהירות הרוח ושומר אותו במשתנה בשם wind.
הערה: נלמד בשיעורים הבאים כיצד לקבל קלט מהמשתמש. כרגע פשוט אל תיגע בשורות הראשונות.
המשימה שלך היא לאתחל את המשתנה status בהתאם לתנאים:
"Calm"אםwindקטן מ־8,"Breeze"אםwindנמצא בין8ל־31(כולל 8 ו־31)."Gale"אםwindנמצא בין32ל־63(כולל 32 ו־63)"Storm"אחרת
בדוק את מקרי הבדיקה כדי לראות את כל הקלטים ואת הפלטים הצפויים
נסו בעצמכם
use std::io;
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let wind: i32 = input.trim().parse().unwrap();
// החליפו את השורה שלמטה בביטוי if-else שמקצה ערך ל-status בהתאם ל-wind
let status = "unset";
// אל תשנו את השורה שלמטה
println!("status = {}", status);
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2חזרה – לוגיקה פשוטהאופרטורים לוגיים חלק 3תרגלו בעצמכם: קומפיילר Rust אונליין