Циклы while похожи на циклы for, но имеют меньшую функциональность. Цикл while продолжает выполнение блока while, пока условие в while остается истинным. Например, следующий код будет выполняться ровно десять раз:
int n = 0;
while (n < 10) {
n++;
}
Циклы while также могут выполняться бесконечно, если задано условие, которое всегда оценивается как истинное (ненулевое):
while (1) {
/* do something */
}
Есть два важных директивы цикла, которые используются в сочетании со всеми типами циклов в C - break
и continue
директивы.
В break
директиве привалов петли , после десяти циклов, даже несмотря на то, в то время как цикл никогда не заканчивается:
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) {
/* go back to the start of the while block */
continue;
}
/* we reach this code only if n is even */
printf("The number %d is even.\n", n);
}
array
Переменный состоит из последовательности десяти чисел. Внутри цикла while вы должны написать два if
условия, которые изменяют поток цикла следующим образом (без изменения printf
команды):
Обратите внимание, что если вы не продвинете переменную итератора i
и не используете continue
производную, вы застрянете в бесконечном цикле.