לולאות מקוננות
חלק מהיחידה יסודות במסלול ה-Ruby של Coddy. שיעור 46 מתוך 88.
אפשר להציב לולאה בתוך לולאה אחרת כדי ליצור לולאה מקוננת. הלולאה הפנימית פועלת עד סופה בכל איטרציה של הלולאה החיצונית, ולכן התבנית הזו שימושית לעבודה עם רשתות, טבלאות או צירופים.
for i in 1..2
for j in 1..3
puts "i=#{i}, j=#{j}"
end
endהפעולה הזאת מדפיסה שש שורות. עבור כל ערך של i, הלולאה הפנימית עוברת על כל הערכים של j.
תחילה i הוא 1, בעוד j נע בין 1, 2, 3. לאחר מכן i הופך ל־2, ו־j שוב נע בין 1, 2, 3.
דוגמה מעשית היא יצירת תבנית כפל פשוטה:
for row in 1..3
for col in 1..3
print "#{row * col} "
end
puts ""
endהקוד הזה מדפיס רשת מוצרים בגודל 3x3. print משאיר את הערכים באותה שורה, ו־puts "" עובר לשורה חדשה אחרי שכל שורה מסתיימת. אפשר גם לשלב סוגים שונים של לולאות, למשל לולאת times בתוך לולאת for.
אתגר
קלקרא שני מספרים שלמים מהקלט:
rows- מספר השורותcols- מספר העמודות
השתמש בלולאות מקוננות כדי להדפיס מלבן העשוי מכוכביות (*) במידות הנתונות. בכל שורה צריכות להיות cols כוכביות המופרדות ברווחים, וכל שורה צריכה להופיע בשורה נפרדת.
השתמש ב-print עבור כוכביות בתוך שורה וב-puts כדי לעבור לשורה הבאה אחרי כל שורה.
לדוגמה, אם הקלט הוא 3 ו-4, הפלט צריך להיות:
* * * *
* * * *
* * * *אם הקלט הוא 2 ו-5, הפלט צריך להיות:
* * * * *
* * * * *נסו בעצמכם
# קראו את הקלט
rows = gets.to_i
cols = gets.to_i
# TODO: כתבו את הקוד שלכם למטה
# השתמשו בלולאות מקוננות כדי להדפיס מלבן של כוכביות
# השתמשו ב-print כדי להדפיס כוכביות בתוך שורה וב-puts כדי לעבור לשורה הבאההשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 2
אופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2חזרה – לוגיקה פשוטהאופרטורים לוגיים חלק 3אופרטורים לוגיים חלק 42משתנים וטיפוסי נתונים
מספרים ומשתניםטיפוס הנתונים מחרוזתטיפוס הנתונים בוליאניטיפוס הנתונים Symbolבדיקת טיפוסי נתוניםמוסכמות שמותסיכום – יצירת משתנים8לולאות
לולאת for עם טווחיםלולאת whilebreaknextסיכום – עצרתלולאת timesלולאת untilלולאות מקוננותסיכום – קלט דינמי3אופרטורים חלק 1
אופרטורים אריתמטייםאופרטור מודולוקיצורי דרך אריתמטייםסיכום – חשבון פשוטאופרטורי השוואה6קלט ופלט בסיסיים
פלט באמצעות putsפלט באמצעות print ו־pפלט באמצעות משתניםקלט באמצעות getsשיטת Chompהמרת טיפוסיםחזרה — מחשבון גילחזרה — אמת או שקר9מתודות
הגדרת מתודהפרמטרים של מתודהערכי החזרהסיכום - מתודת Sigmaסיכום - מתודת האימותערכי ברירת מחדל של פרמטרים15מעקב אחר הוצאות יומיות
סקירת הפרויקטיציאה מהתוכניתתרגלו בעצמכם: קומפיילר Ruby אונליין