Menu
Coddy logo textTech

התאמה לטווחים

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Rust של Coddy. שיעור 3 מתוך 66.

כשצריך לבדוק אם ערך נמצא בטווח מסוים של מספרים, יהיה מייגע לכתוב זרוע נפרדת לכל ערך בנפרד. ביטוי ה-match של Rust תומך בתבניות טווח, שמאפשרות להתאים לטווח רציף של ערכים באמצעות התחביר start..=end.

האופרטור ..= יוצר טווח כולל, כלומר ערכי ההתחלה והסיום נכללים שניהם בהתאמה. כך אפשר להשתמש בטווחים בזרועות match:

let temp = 22;

match temp {
    ..=0 => println!("Freezing"),
    1..=15 => println!("Cold"),
    _ => println!("Warm"),
}

בדוגמה הזאת, טמפרטורה של 22 לא תתאים לשני הטווחים הראשונים, ולכן תמשיך לזרוע ברירת המחדל ותדפיס "Warm". הטווח 1..=15 כולל גם את 1 וגם את 15, ולכן כל טמפרטורה מ-1 עד 15 תדפיס "Cold".

challenge icon

אתגר

קל

תקבלו גיל כקלט. קראו את הקלט, המירו אותו למספר שלם והשתמשו בביטוי match עם תבניות טווח כדי להדפיס את קטגוריית הגיל המתאימה.

דרישות:

  • אם הגיל הוא 0..=12, הדפיסו "Child"
  • אם הגיל הוא 13..=19, הדפיסו "Teenager"
  • אם הגיל הוא 20..=64, הדפיסו "Adult"
  • אם הגיל הוא 65..=120, הדפיסו "Senior"
  • לכל גיל אחר, הדפיסו "Invalid age"

קלט: מספר שלם יחיד המייצג את הגיל

פלט: הדפיסו את קטגוריית הגיל: "Child", "Teenager", "Adult", "Senior" או "Invalid age"

נסו בעצמכם

use std::io;

fn main() {
    // קראו את הקלט
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let age: i32 = input.trim().parse().expect("Please enter a valid number");
    
    // TODO: כתבו את הקוד שלכם למטה באמצעות ביטוי match עם תבניות טווח
    
    // הדפיסו את התוצאה
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר Rust אונליין