לולאת while
חלק מהיחידה יסודות במסלול ה-R של Coddy. שיעור 39 מתוך 78.
בעוד שלולאת for עוברת על רצף מוגדר מראש, לולאת while ממשיכה לפעול כל עוד התנאי נשאר TRUE. הדבר שימושי כשלא ידוע מראש כמה פעמים צריך לחזור על משהו.
count <- 1
while (count <= 3) {
print(count)
count <- count + 1
}פלט:
[1] 1
[1] 2
[1] 3הלולאה בודקת את התנאי count <= 3 לפני כל איטרציה. כאשר count הופך ל־4, התנאי הוא FALSE, והלולאה נעצרת.
חשוב: עליך לעדכן את המשתנה בתוך הלולאה. ללא count <- count + 1, התנאי תמיד יהיה TRUE, וכך תיווצר לולאה אינסופית שלא מסתיימת.
total <- 0
num <- 1
while (num <= 5) {
total <- total + num
num <- num + 1
}
print(total)פלט:
[1] 15הדוגמה הזו מחברת את המספרים 1 עד 5, והתוצאה היא 15. לולאת while אידיאלית כאשר נקודת העצירה תלויה בתנאי ולא ברצף קבוע.
אתגר
קלקראו מספר n מהקלט. השתמשו בלולאת while כדי לחשב ולהדפיס את הסכום של כל המספרים מ־1 עד n.
התחילו עם משתנה למעקב אחר הסכום המצטבר ומשתנה נוסף בתור מונה. המשיכו להוסיף לסכום כל עוד המונה קטן מ־n או שווה לו, והגדילו את המונה בכל איטרציה.
לאחר שהלולאה מסתיימת, הדפיסו את הסכום הסופי באמצעות print().
לדוגמה, אם הקלט הוא 5, הפלט אמור להיות:
[1] 15הסיבה לכך היא ש־1 + 2 + 3 + 4 + 5 = 15.
נסו בעצמכם
# קראו את הקלט
con <- file("stdin", "r")
n <- as.integer(suppressWarnings(readLines(con, n = 1)))
# אתחלו את המשתנים
total <- 0
counter <- 1
# TODO: כתבו למטה לולאת while לחישוב הסכום מ-1 עד n
# הדפיסו את התוצאה
print(total)השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 2
אופרטורים לוגיים (AND, OR)אופרטורים לוגיים חלק 2 (NOT)חזרה – לוגיקה פשוטהלוגיקה וקטורית חלק 1לוגיקה וקטורית חלק 27מחשבון לחלוקת החשבון
הודעת פתיחהקבלת קלט מהמשתמש2משתנים וסוגי נתונים
סוג נתונים מספריסוג נתונים שלמיםסוג נתונים של תוויםסוג נתונים לוגיבדיקת סוגי נתוניםמוסכמות למתן שמותערכים חסרים: NAסיכום – יצירת משתנים8לולאות
לולאת forלולאת whileפקודת breakהמשך (continue)סיכום – עצרתיצירת רצפים (seq, :)לולאות מקוננותסיכום – קלט דינמי3אופרטורים חלק 1
אופרטורים אריתמטייםחלוקת מספרים שלמים ומודולואופרטורי השמהחזרה – חשבון פשוטאופרטורי השוואה6קלט/פלט בסיסי
הדפסת פלטחתול כפלטפלט עם משתניםקריאת קלט באמצעות readline()יסודות המרת טיפוסיםחזרה – מחשבון גילחזרה – אמת או שקר9פונקציות
הכרזה על פונקציהארגומנטים של פונקציהערכי החזרהסיכום – פונקציית סיגמאסיכום – פונקציית אימותערכי ברירת מחדל לפרמטריםתרגלו בעצמכם: קומפיילר R אונליין