Menu
Coddy logo textTech

לולאת 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 אידיאלית כאשר נקודת העצירה תלויה בתנאי ולא ברצף קבוע.

challenge icon

אתגר

קל

קראו מספר 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)
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר R אונליין