Студенту >> Язык программирования Си


Оператор цикла while

Оператор цикла while предназначен для реализации циклических алгоритмов и имеет следующую форму записи

    БНФ:
             "while" "(" выражение ")" оператор
    Пример :
              while( a < 18 ) a = a+2;

При выполнении оператора цикла while вначале вычисляется выражение. Если оно не равно 0, то выполняется оператор. Далее снова вычисляется выражение и если оно не равно 0, то снова выполняется оператор. Такие циклические действия продолжаются до тех пор, пока выражение отлично от 0. Отсюда и название цикла while ( пока ). Как только выражение станет равным 0 цикл прекращает выполнятся и управление передается на следующий за циклом оператор.

Циклически выполняемый оператор обычно называют телом цикла. Если в теле цикла необходимо разместить не один, а несколько операторов, то в этом случае используют составной оператор.

Все операторы тела цикла должны быть записаны с отступом, обычно в три пробела.

Рассмотрим пример программы, которая выводит на экран таблицу функций sin(x) и cos(x):
     #include <math.h>
     #include <stdio.h>

     void main( void )
     {
        double x = 0;
        while( x < 3.0 )
        {
           printf( "%6.3lf   %9.6lf   %9.6lf\n",x, sin(x), cos(x) );
           x += 0.2;
        }
     }

Если после while( x > 3.0 ) ошибочно поставить точку с запятой, то никаких сообщений об ошибках выдано не будет, но цикл станет бесконечным. Действительно, в этом случае тело цикла будет пустым оператором ";", переменная x не будет меняться, следовательно, результат выражения x > 3.0 всегда будет отличен от нуля.

В теле правильно организованного цикла обязательно должны содержатся операции, влияющие на выражение в заголовке цикла так, чтобы цикл рано или поздно завершился.

НАВЕРХ