Этот оператор, который используется, когда требуется проверить необходимость выполнения цикла, имеет вид
while (выражение) оператор, где
while (пока) – ключевое слово;
выражение – условие продолжения цикла в виде логического или арифметического выражения сравнимого с нулем. Если выражение не равно нулю (истинно), то выполняется оператор, в противном случае оператор цикла либо не выполняется вообще, либо заканчивается и управление передается следующему за ним оператору;
оператор (тело цикла) – это либо одиночный или пустой оператор, за которыми ставится точка с запятой (;), либо составной оператор, заключенный в операторные скобки { }, за которым точка с запятой не ставится.
Перед выполнением оператора while параметру цикла (P), который входит в выражение (условие), должно задаваться начальное значение, кроме того параметр должен изменятся во время работы цикла. Корректную работу цикла с предусловием можно представить следующей схемой:
в схеме алгоритма: в программе:
|
|
|
while (условие (Р))
Условие (Р)
{операторы тела цикла;
Тело цикла Р = изменение;
Р= изменение }
Конец цикла Р
Пример. Организация цикла в программе. Вычислить сумму (sum) чисел от 0 до 5 (i – параметр цикла).
a) sum = i = 0; б) sum = i = 0; в) sum = i = 0;
while (i<=5) while (i<=5) while (++i <= 5)
{ sum = sum + i; sum += i++; sum += i;
i++;
}
printf(“sum=%d”, sum);
В последнем случае параметр цикла i изменяется в выражении условия.
Особенность оператора while в том, что тело цикла может ни разу не выполниться, например,
i=15;
while (i<0) i++;
В данном случае i не изменится, так как условие цикла с самого начала ложно.
В случае неверного задания начального значения параметра цикла, выражения условия или неправильного изменения параметра цикла может образоваться бесконечный цикл (зацикливание), например,
i=15;
while (i>0) i++;
Отслеживание и исправление таких ситуаций лежит на программисте.