→ חזרו אחורה

פרק 3 - תנאים

⏱ 12 דקות קריאה

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

1. הפקודה if

⁦C#⁩

int age = 20;

if (age >= 18)
{
    Console.WriteLine("מותר להיכנס");
}
            

2. הפקודה else

⁦C#⁩

if (age >= 18)
{
    Console.WriteLine("מותר להיכנס");
}
else
{
    Console.WriteLine("אסור להיכנס");
}
            

3. הפקודה else if

⁦C#⁩

int grade = 85;

if (grade >= 90)
{
    Console.WriteLine("מצוין");
}
else if (grade >= 70)
{
    Console.WriteLine("טוב");
}
else
{
    Console.WriteLine("צריך שיפור");
}
            

4. אופרטורי השוואה

אופרטורפירושדוגמה
==שווה לx == 5
!=שונה מx != 5
>גדול מx > 5
<קטן מx < 5

טעות נפוצה - בלבול בין = ל-==: כתיבת if (age = 18) במקום if (age == 18). למרבה המזל, ב-⁦C#⁩ (ובאותה מידה ב-Java) זו שגיאת קומפילציה מיידית - התנאי בתוך if חייב להיות מסוג bool, ו-age = 18 הוא ביטוי מסוג int - אז התוכנית פשוט לא תרוץ, ולא תקבלו תוצאה שגויה "בשקט". עדיין כדאי להכיר את השגיאה כדי לא להיתקע עליה בזמן מבחן.

🎓 זווית הבגרות

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

סוג שאלה טיפוסי: שאלת "מה יודפס" שדורשת מעקב אחרי שרשרת if/else if/else, או שילוב תנאים בתוך פתרון גדול יותר כמו סינון ערכים במערך.

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

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

5. תרגול

מה יודפס למסך על ידי הקוד הבא?

⁦C#⁩
int grade = 72;

if (grade >= 90)
{
    Console.WriteLine("מצוין");
}
else if (grade >= 70)
{
    Console.WriteLine("טוב");
}
else
{
    Console.WriteLine("צריך שיפור");
}

כמה שורות פלט יודפסו בסה"כ על ידי הקוד הבא?

⁦C#⁩
int score = 95;
if (score >= 60)
{
    Console.WriteLine("עבר");
}
if (score >= 90)
{
    Console.WriteLine("מצטיין");
}

מה יודפס למסך על ידי הקוד הבא? (תנאי מקונן - if בתוך if)

⁦C#⁩
int age = 20;
bool hasLicense = true;

if (age >= 18)
{
    if (hasLicense)
    {
        Console.WriteLine("מותר לנהוג");
    }
    else
    {
        Console.WriteLine("צריך רישיון");
    }
}
else
{
    Console.WriteLine("צעיר מדי");
}

כתבו את שורת התנאי שבודקת אם age גדול או שווה ל-18 (בלי הסוגריים המסולסלים - הם יבואו בשורה הבאה, כמו בדוגמאות שראינו).

כתבו את שורת התנאי שבודקת אם grade שווה ל-100 (בלי הסוגריים המסולסלים - הם יבואו בשורה הבאה).

פרק 2 - קלט ופלט פרק 4 - לולאות