תוויות לולאה
חלק מהיחידה יסודות במסלול ה-Rust של Coddy. שיעור 42 מתוך 75.
תוויות ב-Rust עוזרות לך לצאת מלולאות ספציפיות או להמשיך אותן כשהן מקוננות. הוסף 'label: לפני לולאה כדי לתייג אותה.
לדוגמה:
'outer: for i in 1..=3 {
'inner: for j in 1..=3 {
if i * j > 5 {
break 'outer;
// This will break the outer loop
}
println!("({}, {})", i, j);
}
}
בדוגמה הזאת יש לנו שתי לולאות מקוננות עם התוויות 'outer ו-'inner. כאשר המכפלה של i ו-j גדולה מ-5, המשפט break 'outer; מתבצע, והוא יוצא מהלולאה החיצונית. הפלט של הקוד הזה יהיה:
(1, 1)
(1, 2)
(1, 3)
(2, 1)
(2, 2)באופן דומה, אפשר להשתמש ב־continue 'label; כדי להמשיך לאיטרציה הבאה של הלולאה שצוינה. לדוגמה:
'outer: for i in 1..=3 {
'inner: for j in 1..=3 {
if i == j {
continue 'outer;
// This will continue the outer loop
}
println!("({}, {})", i, j);
}
}במקרה זה, כאשר i שווה ל־j, הפקודה continue 'outer; מבוצעת, מה שמדלג על שאר הלולאה הפנימית וממשיך לאיטרציה הבאה של הלולאה החיצונית. הפלט יהיה:
(2, 1)
(3, 1)
(3, 2)אתגר
מתחיליםכתבו תוכנית Rust שמשתמשת בלולאות עם תוויות כדי למצוא את זוג המספרים הראשון (i, j) שסכומם גדול מ־10 והמכפלה שלהם היא כפולה של 12 (המכפלה מתחלקת ב־12 ללא שארית). התוכנית צריכה לעבור על i מ־1 עד 20 ועל j מ־1 עד 20.
כשמוצאים את הזוג, הדפיסו אותו בפורמט (i, j) וצאו מהלולאה החיצונית.
נסו בעצמכם
fn main() {
'outer: for i in 1..=20 {
for j in 1..=20 {
// Your logic here
break 'outer;
}
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2חזרה – לוגיקה פשוטהאופרטורים לוגיים חלק 3תרגלו בעצמכם: קומפיילר Rust אונליין