פקודת if

פקודת הif (בעברית צחה- "פקודת התנאי", באנגלית if statement) היא אחד המושגים הבסיסיים ביותר בתכנות. הפקודה הזו מאפשרת לנו לקבל החלטות על סמך תנאי בוליאני.

if meme

כך נראית צורת כתיבה בסיסית של הפקודה (צורת כתיבה = סינטקס = syntax):

בואו נסתכל על הדוגמא הבסיסית ביותר לif statement:

מבנה if statement#

השורה הראשונה של פקודת התנאי מורכבת משלושה חלקים:

  1. המילה if.
  2. התנאי הבוליאני לבדיקה. 👆בדוגמא למעלה x==5 יחזיר True.
  3. נקודותיים :

השורה הבאה פותחת בלוק חדש:

  • כל הבלוק מתואר בהזחה . הזחה היא רווח קבוע מתחילת השורה ונקרא באנגלית indentation.
    • ניתן לייצר הזחה בקוד בעזרת לחיצה על כפתור ה Tab במקלדת.
    • אפשרות אחרת היא לכתוב ארבעה רווחים במקום Tab, אבל אנחנו פחות אוהבים 🙈
  • הבלוק של הקוד יתבצע רק אם התנאי הבוליאני מחזיר True.
  • 👆בדוגמא למעלה הבלוק שלנו הוא שורה אחת print("Inside the if block!"). השורה הזו תתבצע במקרה שלנו כי התנאי הבוליאני x==5 מחזיר True. שימו לב שגודל הבלוק יכול להיות יותר משורה אחת, כאשר כל השורות חייבות להיות באותו רווח קבוע (הזחה).

לאחר סיום הבלוק המוזח חוזרים להמשך הקוד הרגיל.

👆בדוגמא למעלה המשך הקוד הוא שורה אחת print("The rest of the code...").

כשהתנאי מחזיר False#

בואו נסתכל על דוגמא אחרת, ועכשיו התנאי יחזיר לנו False:

אפשר לראות שעכשיו הבלוק המוזח לא ירוץ כי התנאי לא מתקיים.
שנו את y כך שהתנאי יתקיים!

פקודות if מקוננות#

רגע של עברית

מְקוּנָּן - זכר (מהאתר מילוג)

  1. משוכן, דייר של קן.
  2. כלול בפריט מסוגו במבנה מדורג.

בתכלס, if בתוך if. נקרא באנגלית "nested if".

כך נראית תצורה בסיסית:

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

אפשר לשים לב שאנחנו בודקים את התנאי הבא פעמיים:

במקום זאת אנחנו יכולים לבדוק את התנאי הזה פעם אחת ואז בתוך הבלוק שמתאים לתנאי הזה לעשות עוד בדיקת תנאי של שם המשפחה:

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

תרגילים#

תרגיל 1- Two ifs#

קבל מספר שלם כקלט מהמשתמש.

כתוב הוראת if שבודקת אם המספר מתחלק ב-3 ללא שארית. אם כן, הדפס: The number is divisible by 3. כתוב הוראה נוספת שבודקת אם המספר נמצא בין 10 ל-20 (כולל). אם כן, הדפס: The number is between 10 and 20.

תרגיל 2- Nested ifs#

קבלו מספר מהמשתמש עבור x גדול מ10 הדפיסו I'm bigger than 10. אם בנוסף x מתחלק ב3 הדפיסו גם I can also be divided by 3 בכל מקרה אחר שום הדפסה לא תתבצע. חובה להשתמש בnested ifs.

תוצאת הדפסה לדוגמא:

Enter a number: 15
I'm bigger than 10
I can also be divided by 3

ועוד תוצאה לדוגמא:

Enter a number: 16
I'm bigger than 10