פרק 3 - תנאים
הרבה פעמים אנחנו רוצים שהתוכנית תקבל החלטה: אם משהו נכון, תעשה פעולה אחת. אם לא, תעשה פעולה אחרת. בדיוק בשביל זה משתמשים בתנאים.
1. הפקודה if
int age = 20;
if (age >= 18)
{
Console.WriteLine("מותר להיכנס");
}
2. הפקודה else
if (age >= 18)
{
Console.WriteLine("מותר להיכנס");
}
else
{
Console.WriteLine("אסור להיכנס");
}
3. הפקודה else if
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. תרגול
מה יודפס למסך על ידי הקוד הבא?
int grade = 72;
if (grade >= 90)
{
Console.WriteLine("מצוין");
}
else if (grade >= 70)
{
Console.WriteLine("טוב");
}
else
{
Console.WriteLine("צריך שיפור");
}
כמה שורות פלט יודפסו בסה"כ על ידי הקוד הבא?
int score = 95;
if (score >= 60)
{
Console.WriteLine("עבר");
}
if (score >= 90)
{
Console.WriteLine("מצטיין");
}
מה יודפס למסך על ידי הקוד הבא? (תנאי מקונן - if בתוך if)
int age = 20;
bool hasLicense = true;
if (age >= 18)
{
if (hasLicense)
{
Console.WriteLine("מותר לנהוג");
}
else
{
Console.WriteLine("צריך רישיון");
}
}
else
{
Console.WriteLine("צעיר מדי");
}
כתבו את שורת התנאי שבודקת אם age גדול או שווה ל-18 (בלי הסוגריים המסולסלים - הם יבואו בשורה הבאה, כמו בדוגמאות שראינו).
כתבו את שורת התנאי שבודקת אם grade שווה ל-100 (בלי הסוגריים המסולסלים - הם יבואו בשורה הבאה).