Цикл 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