Menu
CoddyTech

לולאה מקוננת

חלק מהיחידה יסודות במסלול ה-Rust של Coddy. שיעור 41 מתוך 75.

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

דוגמה ללולאה מקוננת:

let rows = 2;
let cols = 2;
for x in 0..rows {
    for y in 0..cols {
        println!("{} {}", x, y);
    }
}
// הפלט יהיה:
// 0 0
// 0 1
// 1 0
// 1 1

הלולאה החיצונית (x) רצה rows פעמים, ובכל אחת מהפעמים האלה הלולאה הפנימית (y) רצה cols פעמים. לכל לולאה יש מונה משלה: y מתחיל מחדש מ־0 בכל פעם שהלולאה החיצונית רצה, ואילו rows ו־cols נשארים ללא שינוי ורק אומרים ללולאות מתי לעצור.

challenge icon

אתגר

מתחילים

כתבו תוכנית שמדפיסה מלבן של כוכביות (*) עם רוחב וגובה נתונים.

קלט: שני מספרים שלמים: width ו-height (קוד הפתיחה כבר קורא אותם).

לדוגמה:

אם width = 5 ו-height = 3, הפלט צריך להיות:

*****
*****
*****

אם width = 4 ו-height = 6, הפלט צריך להיות:

****
****
****
****
****
****

השתמשו במונה חדש לכל לולאה (לדוגמה, i עבור השורות ו-j עבור הכוכביות בשורה) והשוו אותו ל-height או ל-width. אל תשנו את height ואת width עצמם: כל שורה זקוקה שוב ל-width.

נסו בעצמכם

use std::io;

fn main() {
    let mut width_input = String::new();
    let mut height_input = String::new();
    io::stdin().read_line(&mut width_input).unwrap();
    io::stdin().read_line(&mut height_input).unwrap();
    let width: i32 = width_input.trim().parse().unwrap();
    let height: i32 = height_input.trim().parse().unwrap();
    // כתבו את הקוד שלכם למטה

}
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה יסודות

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