משך: 2 שעות אקדמיות (90 דקות).

מטרת השיעור: הסטודנטים ידעו לבחור נכון בין if/switch להחלטות, ובין for/while/foreach לחזרות.

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

דגש קריטי: הדגימו לולאה אינסופית בכוונה (ואז עצרו אותה) — זו הדרך הכי מהירה ללמד “למה while בלי תנאי עצירה מסוכן”.


מהלך השיעור

חלק בשיעורמשךהערות ודגשים
פתיחה וחיבור5 דקותשאלו: “איך תוכנית ‘מחליטה’ משהו?”
הרעיון: if/else15 דקותדוגמת גיל, הראו גם else if שרשרת
הרעיון: switch15 דקותהשוו לשרשרת if/else ארוכה על אותו משתנה
הרעיון: for15 דקותספירה מ-1 עד N, הדגישו i++ ותנאי עצירה
הרעיון: while + לולאה אינסופית15 דקותהדגימו while(true) בלי break — עצרו עם Ctrl+C
foreach10 דקותעל מערך פשוט, השוו ל-for עם אינדקס
תרגול מודרך15 דקותתרגיל 1+2

דגשים להעברת השיעור

  • הדגמת הלולאה האינסופית בשידור חי (ועצירתה עם Ctrl+C) משאירה רושם חזק יותר מכל הסבר תיאורטי — לא לדלג עליה.
  • switch expression (עם =>) הוא התחביר המודרני; אם רלוונטי, אפשר להזכיר בקצרה שקיים גם switch “קלאסי” עם case:/break;, אך להתמקד בגרסה המודרנית.
  • off-by-one errors (<= במקום <) כדאי להדגים בפועל על מערך — IndexOutOfRangeException אמיתי משכנע יותר מאזהרה מילולית.

מושגים

if/else if/else — ריצה מותנית של קוד. switch — בחירה בין כמה מקרים לפי ערך אחד. for — לולאה עם מספר איטרציות ידוע מראש. while — לולאה שתלויה בתנאי דינמי. foreach — מעבר על כל איברי אוסף בלי ניהול אינדקס. לולאה אינסופית — לולאה שהתנאי שלה אף פעם לא הופך לשקר.


תרגיל חשיבה

שאלת פתיחה: “מתי הייתם בוחרים for ומתי while — תנו דוגמה אחת מהחיים האמיתיים (לא קוד) לכל אחד.”

מהלך: אספו דוגמאות מהכיתה. טובות ל-for: “לספור מ-1 עד 10”, “לעבור על כל יום בשבוע”. טובות ל-while: “להמשיך למלא כוס עד שהיא מלאה”, “לנסות להתחבר עד שמצליחים”. הובילו לכלל: מספר איטרציות ידוע מראש → for; תלוי בתנאי דינמי → while.

מה המרצה מראה בסוף: כתבו את אותה לוגיקה (הדפסת המספרים 1 עד 5) פעם עם for ופעם עם while עם מונה ידני — הראו שהתוצאה זהה, אבל for קצר וממוקד יותר כי מספר האיטרציות ידוע מראש.