לולאה מקוננת
חלק מהיחידה יסודות במסלול ה-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 אונליין