if - else מקונן
חלק מהיחידה יסודות במסלול ה-R של Coddy. שיעור 25 מתוך 78.
לפעמים שתי אפשרויות אינן מספיקות. מה אם צריך לבדוק כמה תנאים ולטפל בכל אחד מהם באופן שונה? אפשר להציב פקודת if-else בתוך בלוק if או else אחר כדי ליצור מסלולי החלטה מורכבים יותר.
score <- 85
if (score >= 90) {
print("Grade: A")
} else {
if (score >= 80) {
print("Grade: B")
} else {
print("Grade: C or below")
}
}תחילה, R בודקת אם הציון הוא 90 ומעלה. מכיוון ש-85 אינו עומד בתנאי הזה, היא עוברת לבלוק else.
בתוכה, if נוסף בודק אם הציון הוא לפחות 80. מכיוון ש-85 עובר את הבדיקה הזו, הוא מדפיס "Grade: B".
ב-R יש דרך נקייה יותר לכתוב זאת באמצעות else if:
score <- 85
if (score >= 90) {
print("Grade: A")
} else if (score >= 80) {
print("Grade: B")
} else {
print("Grade: C or below")
}שתי הגישות פועלות באותו אופן, אבל else if שומר על הקוד שלך פחות מקונן וקל יותר לקריאה. אפשר לשרשר כמה בלוקים של else if שנדרש, ו-R יבצע רק את הבלוק הראשון שהתנאי שלו נכון.
אתגר
קלצרו מערכת לתמחור כרטיסים באמצעות תנאי if-else או else if מקוננים, כדי לקבוע את מחיר הכרטיס בהתאם לגיל.
המשתנה הבא נתון לכם:
age <- 25כתבו סדרת תנאים כדי לקבוע ולהדפיס את מחיר הכרטיס לפי הכללים הבאים:
- אם הגיל קטן מ־5, הדפיסו
"Free" - אם הגיל הוא בין 5 ל־12 (כולל), הדפיסו
"$5" - אם הגיל הוא בין 13 ל־17 (כולל), הדפיסו
"$8" - אם הגיל הוא בין 18 ל־64 (כולל), הדפיסו
"$12" - אם הגיל הוא 65 ומעלה, הדפיסו
"$7"
השתמשו בפונקציה print() כדי להציג את הפלט.
נסו בעצמכם
# משתנה שסופק
age <- 25
# TODO: כתבו את הקוד שלכם למטה
# השתמשו במשפטי if-else מקוננים או במשפטי else if כדי לקבוע את מחיר הכרטיס
# בהתאם לכללי הגיל שסופקוהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 2
אופרטורים לוגיים (AND, OR)אופרטורים לוגיים חלק 2 (NOT)חזרה – לוגיקה פשוטהלוגיקה וקטורית חלק 1לוגיקה וקטורית חלק 27מחשבון לחלוקת החשבון
הודעת פתיחהקבלת קלט מהמשתמש2משתנים וסוגי נתונים
סוג נתונים מספריסוג נתונים שלמיםסוג נתונים של תוויםסוג נתונים לוגיבדיקת סוגי נתוניםמוסכמות למתן שמותערכים חסרים: NAסיכום – יצירת משתנים8לולאות
לולאת forלולאת whileפקודת breakהמשך (continue)סיכום – עצרתיצירת רצפים (seq, :)לולאות מקוננותסיכום – קלט דינמי3אופרטורים חלק 1
אופרטורים אריתמטייםחלוקת מספרים שלמים ומודולואופרטורי השמהחזרה – חשבון פשוטאופרטורי השוואה6קלט/פלט בסיסי
הדפסת פלטחתול כפלטפלט עם משתניםקריאת קלט באמצעות readline()יסודות המרת טיפוסיםחזרה – מחשבון גילחזרה – אמת או שקר9פונקציות
הכרזה על פונקציהארגומנטים של פונקציהערכי החזרהסיכום – פונקציית סיגמאסיכום – פונקציית אימותערכי ברירת מחדל לפרמטריםתרגלו בעצמכם: קומפיילר R אונליין