דילוג לתוכן המרכזי
מודול 2 · שיעור 1 מתוך 23/14 בקורס~12 min
שיעורי מודול (1/2)

תנאים ולולאות

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

תנאים: if כביטוי

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

Rust
let condition = true;
let number = if condition { 5 } else { 6 }; // if/else as an expression

לולאות ואיטרציות

חלודה מספקת שלושה סוגים של לולאות מקוריות: loop, while וfor.

1. loop (לולאה אינסופית)

מילת המפתח loop יוצרת לולאה אינסופית שנמשכת עד שאתה אומר לה במפורש להפסיק להשתמש ב-break:

Rust
let mut count = 0;
loop {
    count += 1;
    if count == 10 {
        break; // Exit the loop
    }
}

בנוסף, תוכל להחזיר ערך מ-loop על-ידי הצבתו מיד אחרי break:

Rust
let result = loop {
    count += 1;
    if count == 10 {
        break count * 2; // Returns 20
    }
};

2. while (לולאה מותנית)

מריץ גוש קוד כל עוד תנאי בוליאני נשאר נכון:

Rust
let mut number = 3;
while number != 0 {
    println!("{}!", number);
    number -= 1;
}

3. for (איטרציה על גבי אוספים וטווחים)

לולאת for היא הכלי הנפוץ והבטוח ביותר לחזרה על אלמנטים באוסף או בטווח של מספרים:

Rust
// Iterates over numbers 1 through 3 (excluding 4)
for number in 1..4 {
    println!("Valore: {}", number);
}

// Iterates including the right boundary using '='
for number in 1..=3 {
    println!("Valore: {}", number); // Prints 1, 2 and 3
}

תוויות לולאה

כאשר עוסקים בלולאות מקוננות, הצהרות break וcontinue חלות על הלולאה הפנימית ביותר כברירת מחדל. חלודה מאפשרת לך להשתמש בתווית לולאה (נכתבת כ-'label_name:) כדי לסיים או להמשיך לולאה חיצונית במפורש:

Rust
let mut count = 0;
'outer: loop {
    loop {
        if count == 5 {
            break 'outer; // Exits the outer loop directly
        }
        count += 1;
    }
}

נסה זאת בעצמך

פעילות גופנית#rust.m2.l1.e1
ניסיונות: 0טוען...

הכריז על משתנה בשם מספר עם ערך של 7. לאחר מכן, השתמש בביטוי if/else כדי להקצות את הערך 'גדול' להודעת המשתנה אם המספר גדול מ-5, או 'קטן' אחרת. לבסוף, הדפס הודעה באמצעות println!.

טוען עורך...
הצג רמז

כתוב `תן הודעה = אם מספר > 5 { 'גדול' } else { 'קטן' };` והעביר אותו אל `println!`.

הפתרון זמין לאחר 3 ניסיונות

פעילות גופנית#rust.m2.l1.e2
ניסיונות: 0טוען...

כתוב לולאת for שמדפיסה את המספרים מ-1 עד 5 כולל (כלומר 1, 2, 3, 4, 5) באמצעות println! בכל איטרציה.

טוען עורך...
הצג רמז

השתמש בתחביר הטווח הכולל `for i in 1..=5` והפעל `println!('{}', i);` בתוך הבלוק.

הפתרון זמין לאחר 3 ניסיונות

פעילות גופנית#rust.m2.l1.e3
ניסיונות: 0טוען...

כתוב לולאה שמגדילה מונה משתנה שניתן לשינוי החל מ-0. כאשר המונה מגיע ל-10, צא מהמונה המחזיר הלולאה כפול 5 באמצעות הצהרת break כדי להקצות ערך זה לתוצאת משתנה בלתי ניתנת לשינוי. לבסוף, הדפס את התוצאה.

טוען עורך...
הצג רמז

השתמש ב-'let result = loop { ... };'. בתוך הלולאה הגדל 'מונה' והוסף את התנאי 'if counter == 10 { break counter * 5; }`.

הפתרון זמין לאחר 3 ניסיונות