לולאה מקוננת
חלק מהיחידה יסודות במסלול ה-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 נשארים ללא שינוי ורק אומרים ללולאות מתי לעצור.
אתגר
מתחיליםכתבו תוכנית שמדפיסה מלבן של כוכביות (*) עם רוחב וגובה נתונים.
קלט: שני מספרים שלמים: 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();
// כתבו את הקוד שלכם למטה
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2חזרה – לוגיקה פשוטהאופרטורים לוגיים חלק 3תרגלו בעצמכם: קומפיילר Rust אונליין