Control Flow
Do While Loop
A do while loop runs the body once before checking the condition.
do while
`do { ... } while (condition);` checks after the first run.
at least once
The body executes even when the condition starts false.
Do While Loop
do_while_loop.c
Replay: real traced execution (multi-file project)
#include <stdio.h>
int main(void) {
int value = 1;
int visits = 0;
do {
visits++;
value--;
} while (value > 0);
printf("visits=%d\n", visits);
return 0;
}
#include <stdio.h>
int main(void) {
int value = 0;
int visits = 0;
do {
visits++;
value--;
} while (value > 0);
printf("visits=%d\n", visits);
return 0;
}
#include <stdio.h>
int main(void) {
int value = 3;
int visits = 0;
do {
visits++;
value--;
} while (value > 0);
printf("visits=%d\n", visits);
return 0;
}
value ← 1, visits ← 0
3int main(void) {4 int value→ 1 = 1; //@value=0, 35 int visits→ 0 = 0;visits ← 1, value ← 0
7do {8 visits→ 1++;9 value→ 0--;10} while (value > 0);printf("visits=%d ", visits);
12 printf("visits=%d\n", visits1);13 return 0;14}outputvisits=1
value ← 0, visits ← 0
3int main(void) {4 int value→ 0 = 0;5 int visits→ 0 = 0;visits ← 1, value ← -1
7do {8 visits→ 1++;9 value→ -1--;10} while (value > 0);printf("visits=%d ", visits);
12 printf("visits=%d\n", visits1);13 return 0;14}outputvisits=1
value ← 3, visits ← 0
3int main(void) {4 int value→ 3 = 3;5 int visits→ 0 = 0;visits ← 1, value ← 2
pass 1 of 37do {8 visits→ 1++;9 value→ 2--;10} while (value > 0);All 3 passes — pass 1 is the card above pass visitsvalue1 0 → 1 3 → 2 2 1 → 2 2 → 1 3 2 → 3 1 → 0 printf("visits=%d ", visits);
12 printf("visits=%d\n", visits3);13 return 0;14}outputvisits=3