Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на C / C++ / Язык программирования Си++. Лекции.DOC
Скачиваний:
173
Добавлен:
02.05.2014
Размер:
775.17 Кб
Скачать
    1. Оператор цикла 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 всегда будет отличен от нуля.

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

    1. Условный оператор и условная операция

Условный оператор предназначен для выбора одного из двух альтернативных действий и имеет следующую форму записи:

БНФ:

условный_оператор =

"if" "("выражение")" оператор_1 ["else" оператор_2]

Пример:

if ( a ) c = b+1; else c = b - 1;

if ( a > b ) k = sin( x ); else k = x + x;

При выполнении условного оператора вначале вычисляется <выражение>. Если его значение не равно нулю, то выполняется <оператор_1>, а <оператор_2> пропускается. Если значение выражения равно нулю, то выполняется <оператор_2>, а <оператор_1> пропускается.

При наличии вложенных операторов ifследует иметь в виду, что ключевое словоelseвсегда относится к ближайшемуif, как показано в следующем примере:

if( b > a )

if( c < d ) k= sin(x);

else t = cos(x);

else c = tan( x );

Для того чтобы избежать ошибок рекомендуется использовать операторные скобки

if( b < a )

{

if( c < d ) k = sin( x );

else t = cos( x );

}

else c = tan( x );

Особенно это важно если у вложенного оператора if отсутствует else, т.е

if( b > a )

if( c < d ) k = sin( x );

else c = tan( x ); /* else относится к

вложенному if */

if( b > a )

{

if( c < d ) k = sin( x );

}

else

c = tan( x ); /* else относится к первому if */

Если в качестве <оператора_1> или <оператора_2> используется группа операторов, то ее записывают как составной оператор, заключая ее в операторные скобки "{" и "}".

Для того, чтобы сделать программу более понятной, рекомендуется операторы записывать в следующих формах:

Соседние файлы в папке C++