Цикл while схож с циклом for, но у него меньше функциональности. Цикл while будет выполняться до тех пор, пока заданное в нём условие будет истино. Например, следующий код будет выполнен 10 раз:
int n = 0;
while (n < 10) {
n++;
}
Цикл while быть бесконечным, если условие всегда возвращает истину:
while (1) {
/* do something */
}
Директивы циклов
Все циклы в C имеют две важных директивы — break и continue.
Директива break прерывает выполнение цикла, даже если условие самого цикла while вегда истино:
int n = 0;
while (1) {
n++;
if (n == 10) {
break;
}
}
В примере ниже используется директива continue, которая возвращает выполнение цикла к его началу — таки образом, printf() будет выполняться только для чётных чисел:
int n = 0;
while (n < 10) {
n++;
/* check that n is odd */
if (n % 2 == 1) {
/* возврат к началу цикла while */
continue;
}
/* выполняется только если n - чётное число */
printf("The number %d is even.n", n);
}
В следуещем примере, мы выполняем итерацию элементов в массиве array[] и в случае, если значение элемента меньше 5 — то пропускаем его, если больше — выводим на экран. Если же значение елемента больше 10 — то прерываем выполнение цикла:
#include <stdio.h>
int main() {
int array[] = {1, 7, 4, 5, 9, 3, 5, 11, 6, 3, 4};
int i = 0;
while (i < 10) {
i++;
if (array[i] < 5) {
continue;
}
else if (array[i] > 10) {
break;
}
printf("%dn", array[i]);
}
return 0;
}
$ ./while_loop 7 5 9 5
3 626 views