פקודות break ו-continue
לפעמים נרצה שליטה עדינה יותר על ביצוע הלולאות שלנו. לטובת כך השפה מעמידה לידינו שתי פקודות מיוחדות, אותן ניתן לכתוב בתוך לולאה מכל סוג:
- פקודת
break- פקודה זו עוצרת את ביצוע הלולאה באופן מיידי ויוצאת ממנה, ללא ביצוע האיטרציה הבאה. - פקודת
continue- פקודה זו עוצרת את האיטרציה הנוכחית ומדלגת מיד לביצוע האיטרציה הבאה, אם היא אמורה להתבצע לפי תנאי הלולאה.
לדוגמא, נכתוב תוכנית שמדפיסה את הריבוע של המספר שהמשתמש הכניס בלולאה אינסופית, עם אופציה לסיום:
#include <stdio.h>
int main() {
int num;
while (1) {
printf("Enter a positive number to square, or 0 to stop\n");
scanf("%d", &num);
if (num == 0) {
break;
}
printf("%d^2 = %d\n", n, n * n);
}
printf("Done!\n");
}
כדוגמא נוספת, נכתוב תוכנית שסוכמת כל מספר בין 0 ל-100 פרט לאלו שספרת האחדות שלהם היא 3 או שספרת המאות שלהם היא 7:
#include <stdio.h>
#define N 100
int main() {
int sum = 0;
for (int i = 0; i < N; i++) {
if (i % 10 == 3 || (i / 10) % 10 == 7) {
continue;
}
sum += i;
}
printf("sum = %d\n", sum);
}