Menu
Coddy logo textTech

לולאות כביטויים

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

ברוב שפות התכנות, לולאות הן פקודות שמבצעות קוד שוב ושוב. אבל ל-Rust יש תכונה ייחודית: לולאות יכולות להיות גם ביטויים שמחזירים ערך. פירוש הדבר הוא שאפשר לשייך את התוצאה של לולאה למשתנה.

כדי להחזיר ערך מתוך לולאה, משתמשים ב־break ואחריו הערך שרוצים להחזיר:

let result = loop {
    // בדיקה של תנאי כלשהו
    if condition_met {
        break 42; // צא מהלולאה והחזר 42
    }
};

הנה דוגמה מעשית שמוצאת את המספר הזוגי הראשון החל מ־10:

let mut counter = 10;

let first_even = loop {
    if counter % 2 == 0 {
        break counter; // החזר את המספר הזוגי
    }
    counter += 1;
};

println!("First even number: {}", first_even);

הלולאה ממשיכה עד שהיא מוצאת מספר זוגי, ואז משתמשת ב־break counter כדי לצאת מהלולאה ולהחזיר את המספר הזה. הערך המוחזר מוקצה ל־first_even.

challenge icon

אתגר

קל

תקבל מספר התחלתי כקלט. קרא את הקלט, המר אותו למספר שלם והשתמש בלולאה כביטוי כדי למצוא את המספר הראשון שמתחלק ב־7, החל מהמספר הזה.

דרישות:

  • השתמש בביטוי loop שמחזיר ערך
  • התחל לבדוק מהמספר שהתקבל כקלט
  • מצא את המספר הראשון שמתחלק ב־7 (השארית בחלוקה ב־7 היא 0)
  • השתמש ב־break כדי להחזיר את המספר שנמצא מהלולאה
  • הדפס את התוצאה

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

פלט: הדפס את המספר הראשון שמתחלק ב־7, החל מהמספר שהתקבל כקלט

נסו בעצמכם

use std::io;

fn main() {
    // קראו את הקלט
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let start_number: i32 = input.trim().parse().expect("Invalid input");
    
    // TODO: כתבו את הקוד שלכם למטה
    // השתמשו בביטוי לולאה כדי למצוא את המספר הראשון שמתחלק ב-7
    
    
    // הדפיסו את התוצאה
    // println!("{}", result);
}
quiz iconבחנו את עצמכם

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

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

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