לולאה מקוננת
חלק מהיחידה יסודות במסלול ה-Rust של Coddy. שיעור 41 מתוך 75.
לולאה מקוננת היא פשוט לולאה בתוך לולאה אחרת. הלולאה הפנימית תשלים את כל האיטרציות שלה בכל איטרציה בודדת של הלולאה החיצונית. שעון הוא דוגמה טובה לכך: עבור כל שעה (הלולאה החיצונית), מחוג הדקות (הלולאה הפנימית) חייב להשלים מחזור מלא של 60 דקות.
דוגמה ללולאה מקוננת:
for x in 0..2 {
for y in 0..2 {
println!("{} {}", x, y);
}
}
// הפלט יהיה:
// 0 0
// 0 1
// 1 0
// 1 1הלולאה החיצונית (x) רצה פעמיים, ובכל אחת מהפעמים האלה הלולאה הפנימית (y) רצה פעמיים.
אתגר
מתחיליםכתבו תוכנית שמוצאת את כל השלשות של מספרים שסכומן n, באמצעות מספרים מ־1 עד n - 1. התוכנית צריכה להציג את כל הצירופים האפשריים שבהם המספר הראשון קטן או שווה למספר השני, והמספר השני קטן או שווה למספר השלישי (כלומר, בסדר לא יורד). כך נמנעות שלשות כפולות כמו "1 2 7" ו־"2 1 7", שמייצגות את אותה קבוצת מספרים.
לדוגמה, אם n = 10, הפלט צריך להיות:
1 1 8
1 2 7
1 3 6
1 4 5
2 2 6
2 3 5
2 4 4
3 3 4מכיוון ש:
1 + 1 + 8 = 10
1 + 2 + 7 = 10
1 + 3 + 6 = 10
1 + 4 + 5 = 10
2 + 2 + 6 = 10
2 + 3 + 5 = 10
2 + 4 + 4 = 10
3 + 3 + 4 = 10סדר ההדפסה: יש להדפיס את השלשות בסדר עולה. המספר הראשון צריך להתקדם מהקטן לגדול, ולכל מספר ראשון, המספר השני צריך להתקדם מהמספר הראשון עד לערך המרבי האפשרי, כדי להבטיח ש־a ≤ b ≤ c.
נסו בעצמכם
use std::io;
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let n: i32 = input.trim().parse().unwrap();
// כתבו את הקוד שלכם למטה
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2חזרה – לוגיקה פשוטהאופרטורים לוגיים חלק 3תרגלו בעצמכם: קומפיילר Rust אונליין