Menu
Coddy logo textTech

המשך (continue)

חלק מהיחידה יסודות במסלול ה-R של Coddy. שיעור 41 מתוך 78.

בעוד break יוצאת מהלולאה לחלוטין, לפעמים רוצים רק לדלג על האיטרציה הנוכחית ולהמשיך לבאה אחריה. הפקודה next עושה בדיוק את זה.

for (i in 1:5) {
  if (i == 3) {
    next
  }
  print(i)
}

פלט:

[1] 1
[1] 2
[1] 4
[1] 5

כאשר i שווה ל־3, הפקודה next מדלגת על שאר האיטרציה הזאת, ולכן 3 לעולם לא יודפס. לאחר מכן הלולאה ממשיכה כרגיל עם 4 ו־5.

האפשרות הזו שימושית כשרוצים לסנן ערכים מסוימים בלי לעצור את הלולאה כולה. לדוגמה, להדפיס רק מספרים זוגיים:

for (num in 1:6) {
  if (num %% 2 != 0) {
    next
  }
  print(num)
}

פלט:

[1] 2
[1] 4
[1] 6

כאן מדלגים על מספרים אי־זוגיים באמצעות next, ומדפיסים רק מספרים זוגיים. ההבדל העיקרי מ־break הוא שהלולאה ממשיכה לפעול — היא פשוט מדלגת על איטרציות מסוימות.

challenge icon

אתגר

קל

קרא מספר n מהקלט. השתמש בלולאת for כדי לעבור מ־1 עד n ולהדפיס רק את המספרים שאינם מתחלקים ב־4.

השתמש בהוראת next כדי לדלג על מספרים שמתחלקים ב־4, והדפס את כל שאר המספרים באמצעות print().

לדוגמה, אם הקלט הוא 10, הפלט צריך להיות:

[1] 1
[1] 2
[1] 3
[1] 5
[1] 6
[1] 7
[1] 9
[1] 10

שים לב ש־4 ו־8 נידלגו כי הם מתחלקים ב־4.

נסו בעצמכם

# קראו את הקלט
con <- file("stdin", "r")
n <- as.integer(suppressWarnings(readLines(con, n = 1)))

# TODO: כתבו את הקוד שלכם למטה
# השתמשו בלולאת for כדי לעבור מ-1 עד n
# השתמשו בהוראת next כדי לדלג על מספרים שמתחלקים ב-4
# הדפיסו את כל שאר המספרים באמצעות print()
quiz iconבחנו את עצמכם

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

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

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