תנאים: אם… אחרת…

תכנות · לכיתות ג׳–ח׳

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

הדרך מתפצלת

ברצף רגיל המחשב עובר על כל ההוראות. תנאי משנה את זה: הוא בודק משהו, ולפי התשובה בוחר באיזו דרך ללכת. המבנה הבסיסי הוא ״אם — אז — אחרת״. אם התנאי מתקיים, מבצעים קבוצה אחת של הוראות. אם הוא לא מתקיים, מבצעים קבוצה אחרת, או פשוט ממשיכים הלאה.

בפייתון, כמו ברוב השפות, המילה לתנאי היא if (״אם״ באנגלית), ולחלופה — else (״אחרת״). למשל: if age >= 12: print("אפשר להירשם") — אם הגיל גדול או שווה ל־12, מציגים ״אפשר להירשם״. בדרך כלל כותבים את זה בשתי שורות: התנאי בשורה אחת, וההוראה בשורה מתחתיו עם כמה רווחים בהתחלה. בסקראץ׳ יש בלוק בצורת ״פה פתוח״ שכתוב עליו ״אם… אז…״, ולתוך הפה מכניסים את הבלוקים שיתבצעו.

אמת או שקר

כל תנאי הוא בעצם שאלה שהתשובה עליה היא ״כן״ או ״לא״. במחשבים קוראים לתשובות האלה אמת ושקר — True ו־False — ולסוג המידע הזה קוראים בוליאני, על שם המתמטיקאי האנגלי ג׳ורג׳ בול. ״האם 7 גדול מ־5?״ — אמת. ״האם 3 שווה ל־4?״ — שקר. אין ״אולי״ ואין ״קצת״.

כדי לשאול שאלות כאלה משתמשים בסימני השוואה: גדול מ־ (>), קטן מ־ (<), גדול או שווה (>=), ושווה ל־, שבפייתון כותבים בשני סימני שוויון: ==. למה שניים? כי סימן שוויון אחד כבר תפוס: הוא משמש לשמירת ערך במשתנה. x = 5 פירושו ״שים 5 בתוך x״, ואילו x == 5 פירושו ״האם x שווה ל־5?״. זה בלבול נפוץ מאוד אצל מתחילים.

וגם, או, ולא

לפעמים צריך לבדוק כמה דברים יחד. ״וגם״ (and) נותן אמת רק אם שני החלקים נכונים: ״אם יש לי כרטיס וגם הגעתי בזמן — אני נכנס להצגה״. ״או״ (or) נותן אמת אם לפחות אחד מהם נכון: ״אם יורד גשם או שיש שרב — נשארים בכיתה בהפסקה״. ״לא״ (not) הופך את התשובה: ״אם לא סיימתי שיעורים — אין מסך״.

אפשר גם לשרשר כמה אפשרויות. בפייתון יש לזה מילה מיוחדת, elif — קיצור של ״אחרת, אם״. למשל בציון: אם הציון 90 ומעלה — ״מצוין״; אחרת, אם 70 ומעלה — ״טוב״; אחרת — ״כדאי לחזור על החומר״. המחשב בודק את האפשרויות לפי הסדר ונעצר בראשונה שמתקיימת, ולכן חשוב לסדר אותן נכון.

תנאים במשחקים ובחיים

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

כשכותבים תנאי, כדאי לחשוב על כל המקרים: מה קורה אם הציון הוא בדיוק 90? מה אם המשתמש הקליד מספר שלילי? מתכנתים בודקים במיוחד את ״מקרי הקצה״ — הערכים שעל הגבול — כי שם מתחבאים הרבה באגים. כתבו לעצמכם את כל האפשרויות בטבלה קטנה לפני שכותבים את הקוד.

✅ חידון: תנאים: אם… אחרת…

1. מה עושה תנאי בתוכנית?

2. איזו מילה משמשת לתנאי בפייתון?

3. מה מתבצע כשהתנאי לא מתקיים ויש else?

4. מה התשובה לתנאי ״7 גדול מ־5״?

5. בפייתון, מה ההבדל בין ⁦=⁩ לבין ⁦==⁩?

6. ״יש כרטיס וגם הגעתי בזמן״ — מתי נכנסים?

7. ״יורד גשם או שיש שרב״ — מתי נשארים בכיתה?

8. מה זה ״מקרה קצה״?

🖨️ דף עבודה להדפסה

8 שאלות, שאלות לחשיבה ודף תשובות עם הסברים.

📘 מושגים מהשיעור

💬 שאלות לשיחה

  1. כתבו שלושה תנאים מהיום שלכם בצורת ״אם… אז… אחרת…״.
  2. במשחק ״המשחק נגמר כשנגמרים החיים״ — איזה תנאי בדיוק המחשב בודק, וכמה פעמים לדעתכם?
  3. למה לדעתכם בחרו בשני סימני שוויון לשאלה ״האם שווה״? אילו סימנים אחרים הייתם בוחרים?

📖 קטע קריאה בנושא: 🥪 הרובוט שהכין כריך

טוענים את הקטע…

עוד שיעורים בתכנות

לכל 16 השיעורים בתכנות ←

חוברת ומבחן לדוגמה לכיתה

שאלות נפוצות

מה זה if else בתכנות?

זה מבנה של החלטה: if (״אם״) בודק תנאי, ואם הוא נכון מבצעים את ההוראות שלו; else (״אחרת״) מבצע הוראות אחרות כשהתנאי לא נכון. כמעט בכל שפת תכנות יש מבנה כזה.

מה זה בוליאני?

סוג מידע שיש לו רק שני ערכים: אמת ושקר (True ו־False). כל תנאי מחזיר ערך בוליאני. השם בא מג׳ורג׳ בול, מתמטיקאי מהמאה ה־19 שחקר לוגיקה של אמת ושקר.

מה זה elif בפייתון?

קיצור של ״else if״ — ״אחרת, אם״. משתמשים בו כשיש יותר משתי אפשרויות, למשל ציון מצוין, טוב או לא מספיק. המחשב בודק את התנאים לפי הסדר ומבצע רק את הראשון שמתקיים.

שווה להסתכל גם על תכנות לילדים, ולומדים.

האם זה עזר?
חדש בעוגה בוגה: מבקשים — ואנחנו מכינים ✨חסר לכם דף עבודה, חוברת או משחק? ספרו לנו, בחינם.
לבקשת דף ←או בוואטסאפ