לדלג לתוכן

תנאים ולולאות בשפת C

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


תנאים – if / else

בדיוק כמו בפייתון, גם ב־C נוכל לבדוק תנאים ולפעול לפיהם. אך התחביר קצת שונה:

דוגמה:

int a = 5;

if (a > 3) {
    printf("a גדול מ־3\n");
} else {
    printf("a קטן או שווה ל־3\n");
}

שימו לב:

  • התנאי נמצא בתוך סוגריים רגילים ()

  • גוף התנאי תמיד בסוגריים מסולסלים {} – גם אם יש רק שורה אחת!

  • אין : כמו בפייתון, ואין טאב – רק סוגריים קובעים מה בפנים.


לולאות

1. while – לולאה כל עוד התנאי מתקיים

int i = 0;

while (i < 3) {
    printf("i = %d\n", i);
    i++;
}

כמו פייתון, רק עם () ו־{}.


2. do while – מבטיחה שהתוכן ירוץ לפחות פעם אחת

int i = 0;

do {
    printf("i = %d\n", i);
    i++;
} while (i < 3);

3. לולאת for – כמו בפייתון עם range, אבל עם שליטה מלאה

for (int i = 0; i < 3; i++) {
    printf("i = %d\n", i);
}

הסבר:

for (התחלה; תנאי; עדכון) {
    // גוף הלולאה
}

במקום לכתוב i = 0, ואז while (i < 3), ואז i++ בתוך הלולאה – ב־for עושים את הכל בשורה אחת.


פעולות בתוך לולאות

break; // יציאה מהלולאה
continue; // דילוג להמשך הלולאה

תנאים בתוך לולאה:

for (int i = 0; i < 5; i++) {
    if (i % 2 == 0) {
        printf("%d זוגי\n", i);
    } else {
        printf("%d אי־זוגי\n", i);
    }
}

תנאים מקוננים:

int age = 18;
int has_license = 1;

if (age >= 18) {
    if (has_license) {
        printf("אתה יכול לנהוג!\n");
    } else {
        printf("לך תוציא רישיון!\n");
    }
}

טיפ חשוב:

ב־C כל ערך שאינו 0 נחשב ל־"אמת" (true), ו־0 נחשב ל־"שקר" (false).

if (1)        // יתבצע
if (0)        // לא יתבצע
if (-15)      // יתבצע