לעתים קרובות תוכנות מחשב צריכות לבצע פעולות מספר פעמים, ולא רק פעם אחת. לדוגמה, תוכנית שתדפיס את כל הדוא"ל החדש שלך תצטרך להדפיס כל דוא"ל מרשימה, ולא רק מדוא"ל בודד. לשם כך משתמשים במבנים הנקראים לולאות. לולאה תחזור על הצהרות בתוכו מספר פעמים עד למצב כלשהו.
בזמן לולאות
הסוג הראשון של לולאות אלה הוא לולאת זמן. אמנם לולאות יבצעו את כל ההצהרות הכלולות בתוכן כל עוד ההצהרה המותנית נכונה. בדוגמה זו, הלולאה מגדילה ללא הרף את ערך המשתנה אני על ידי אחד. כל עוד ההצהרה המותנית i <10 נכון, הלולאה תמשיך לבצע את ההצהרה i + = 1 מה שמוסיף אחד למשתנה.
#! / usr / bin / env אודם
i = 0
בעוד אני <10
i + = 1
סוף
מכניס את i
עד לולאות
עד שלולאות כמעט זהות לולאות, פרט לכך שהן לולאות כל עוד ההצהרה המותנית היא שקר. לולאת ה- while תעבור לולאה בזמן שהתנאי נכון, הלולאה עד אשר תעבור לולאה עד התנאי נכון. דוגמה זו היא המקבילה הפונקציונלית של דוגמת לולאת הזמן, למעט שימוש בלולאה עד, עד שאני == 10 . המשתנה מוגדל באחד עד שערכו שווה לעשרה.
#! / usr / bin / env אודם
i = 0
עד שאני == 10
i + = 1
סוף
מכניס את i
לולאות "דרך האודם"
אם כי השימוש בלולאות מסורתיות יותר ומושך בתוכניות רובי, לולאות מבוססות סגירה נפוצות יותר. אין אפילו צורך להבין מהם סגירות או כיצד הן פועלות על מנת להשתמש בלולאות אלה; למעשה, הם רואים לולאות רגילות למרות שהם שונים מאוד מתחת למכסה המנוע.
לולאת הטיימס
ה פעמים ניתן להשתמש בלולאה על כל משתנה המכיל מספר או משמש על מספר עצמו. בדוגמה הבאה, הלולאה הראשונה מופעלת 3 פעמים והלולאה השנייה מופעלת עם זאת, פעמים רבות הזנת המשתמש. אם אתה מזין 12, הוא יפעל 12 פעמים. תבחין כי לולאת הזמנים משתמשת בנקודה תחביר (לעשות 3 פעמים) ולא את תחביר מילות המפתח שמשתמש בו בזמן ועד הלולאה. זה קשור לאופן הפעולה של לולאת הזמנים מתחת למכסה המנוע, אך משתמשים בו באותה צורה או עד שמשמשים לולאה.
#! / usr / bin / env אודם
3. פעמים לעשות
שם "זה יודפס 3 פעמים"
סוף
הדפס "הזן מספר:"
num = gets.chomp.to_i
פעמים רבות
מגדיר "רובי זה נהדר!"
סוף
כל לולאה
ה כל אחד לולאה היא אולי השימושית ביותר מבין כל הלולאות. כל לולאה תיקח רשימת משתנים ותריץ גוש הצהרות עבור כל אחד מהם. מכיוון שכמעט כל משימות המחשוב משתמשות ברשימות של משתנים ועליהן לעשות משהו עם כל אחת מהן ברשימה, כל הלולאה היא ללא ספק הלולאה הנפוצה ביותר קוד רובי. דבר אחד שיש לציין כאן הוא הוויכוח לגוש ההצהרות של הלולאה. הערך של המשתנה הנוכחי עליו מסתכל הלולאה מוקצה לשם המשתנה בתווי צינור, שהוא | n | בדוגמה. בפעם הראשונה שהלולאה פועלת, ה- n המשתנה יהיה שווה ל"פרד ", בפעם השנייה שהלולאה פועלת הוא יהיה שווה ל"בוב" וכן הלאה.
#! / usr / bin / env אודם
# רשימת שמות
names = ["Fred", "Bob", "Jim"]
names.each do | n |
מכניס את "שלום מספר {n}"
סוף