לדלג לתוכן

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

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


תנאים – if / else

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

דוגמה:

int a = 5;

if (a > 3) {
    printf("a is greater than 3\n");
} else {
    printf("a is less than or equal to 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 (start; condition; update) {
    // loop body
}

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


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

break; // exit the loop
continue; // skip to the next iteration

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

for (int i = 0; i < 5; i++) {
    if (i % 2 == 0) {
        printf("%d is even\n", i);
    } else {
        printf("%d is odd\n", i);
    }
}

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

int age = 18;
int has_license = 1;

if (age >= 18) {
    if (has_license) {
        printf("You can drive!\n");
    } else {
        printf("Go get a license!\n");
    }
}

טיפ חשוב:

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

if (1)        // will execute
if (0)        // will not execute
if (-15)      // will execute