פקודת break
חלק מהיחידה יסודות במסלול ה-R של Coddy. שיעור 40 מתוך 78.
לפעמים צריך לצאת מלולאה מוקדם, לפני שהיא מסיימת את כל האיטרציות שלה. הפקודה break מאפשרת לעצור לולאה מיד כשמתקיים תנאי מסוים.
for (i in 1:10) {
if (i == 5) {
break
}
print(i)
}פלט:
[1] 1
[1] 2
[1] 3
[1] 4הלולאה הוגדרה לרוץ מ־1 עד 10, אבל כשהערך של i הגיע ל־5, הפקודה break עצרה את הלולאה לחלוטין. שים לב ש־5 מעולם לא הודפס, כי break יוצאת מיד.
הדבר שימושי במיוחד עם לולאות while כשמחפשים משהו:
num <- 1
while (TRUE) {
if (num * num > 20) {
break
}
num <- num + 1
}
print(num)פלט:
[1] 5כאן, while (TRUE) הייתה פועלת בדרך כלל לנצח, אבל break עוצרת אותה ברגע שאנחנו מוצאים את המספר הראשון שהריבוע שלו גדול מ-20. התבנית הזו נפוצה כשצריך לחפש עד שתנאי מתקיים.
אתגר
קלקרא מספר limit מהקלט. השתמש בלולאת for כדי לעבור מ־1 עד limit, אבל עצור את הלולאה מוקדם באמצעות break כשתיתקל במספר הראשון שמתחלק גם ב־3 וגם ב־7.
הדפס כל מספר לפני בדיקת התנאי. כשתמצא מספר שמתחלק גם ב־3 וגם ב־7, הדפס את המספר הזה ואז צא מהלולאה.
לאחר סיום הלולאה, הדפס "Loop ended" באמצעות print().
לדוגמה, אם הקלט הוא 30, הפלט אמור להיות:
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
[1] 11
[1] 12
[1] 13
[1] 14
[1] 15
[1] 16
[1] 17
[1] 18
[1] 19
[1] 20
[1] 21
[1] "Loop ended"הלולאה נעצרת ב־21 כי זה המספר הראשון שמתחלק גם ב־3 וגם ב־7 (21 = 3 × 7).
נסו בעצמכם
# קראו את הקלט
con <- file("stdin", "r")
limit <- as.integer(suppressWarnings(readLines(con, n = 1)))
# TODO: כתבו את הקוד שלכם למטה
# השתמשו בלולאת for מ-1 עד limit
# הדפיסו כל מספר לפני בדיקת התנאי
# צאו מהלולאה כשאתם מוצאים מספר שמתחלק גם ב-3 וגם ב-7
# רמז: השתמשו באופרטור %% כדי לבדוק התחלקות
# הדפיסו "Loop ended" אחרי הלולאה
print("Loop ended")השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 2
אופרטורים לוגיים (AND, OR)אופרטורים לוגיים חלק 2 (NOT)חזרה – לוגיקה פשוטהלוגיקה וקטורית חלק 1לוגיקה וקטורית חלק 27מחשבון לחלוקת החשבון
הודעת פתיחהקבלת קלט מהמשתמש2משתנים וסוגי נתונים
סוג נתונים מספריסוג נתונים שלמיםסוג נתונים של תוויםסוג נתונים לוגיבדיקת סוגי נתוניםמוסכמות למתן שמותערכים חסרים: NAסיכום – יצירת משתנים8לולאות
לולאת forלולאת whileפקודת breakהמשך (continue)סיכום – עצרתיצירת רצפים (seq, :)לולאות מקוננותסיכום – קלט דינמי3אופרטורים חלק 1
אופרטורים אריתמטייםחלוקת מספרים שלמים ומודולואופרטורי השמהחזרה – חשבון פשוטאופרטורי השוואה6קלט/פלט בסיסי
הדפסת פלטחתול כפלטפלט עם משתניםקריאת קלט באמצעות readline()יסודות המרת טיפוסיםחזרה – מחשבון גילחזרה – אמת או שקר9פונקציות
הכרזה על פונקציהארגומנטים של פונקציהערכי החזרהסיכום – פונקציית סיגמאסיכום – פונקציית אימותערכי ברירת מחדל לפרמטריםתרגלו בעצמכם: קומפיילר R אונליין