Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Posobie_Cpp.doc
Скачиваний:
6
Добавлен:
20.11.2019
Размер:
603.14 Кб
Скачать

Void main()

{

int aval, sum=0;

for(int i=0; i<5; i++) // можно определить переменную цикла здесь

{

cout << ” input number\n”;

cin<<aval;

sum = sum + aval;

}

cout << ” Sum equal ”<<sum;

}

Интересно, что условие выполнения цикла не обязательно должно принимать значение истина/ложь, так как в С целочисленное значение равное 0 эквивалентно логическому ложь, а не равное нулю - истина. Таким образом, если значение выражения станет равным нулю, то выполнение цикла прекратится.

int limit=4;

Int I; // переменную цикла можно определить и вне цикла

for (i=limit; i; i--) // закончить цикл когда i=0

cout<<” i= ” <<i;<<”\n”;

В этом примере для изменения переменной цикла используется операция декремента i - -(эквивалентно i = i -1).

2.2.2. Изменение шага цикла

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

// пример: шаг цикла by вводится пользователем

#include <iostream.h>

Void main()

{

cout<<” Enter an integer\n ”

int by;

cin>>by;

cout<<” Step is: ”<<by<<”\n”;

for(int i=0; i<100; i=i+by)

cout << i<<”\n”;

}

Результат действия этой программы:

Enter an integer

Step is: 33

0

33

66

99

Когда значение i становится равным 132, выполнение цикла прекращается.

В качестве обновления переменной можно использовать любое действительное (с синтаксической точки зрения) выражение:

i=2*i;

i=i*i+1;

и т.д.

Рассмотренный цикл for является циклом с предусловием, т.е. условие выполнения цикла проверяется перед циклом, и если условие с самого начала является ложным, то программа вообще не выполнит цикла. К такому же типу можно отнести и цикл while.

2.2.3. Цикл while.

Цикл while напоминает собой цикл for без частей инициализации и обновления цикла.

while( условие выполнения цикла)

Тело цикла;

Программа проверяет условие, и если оно истинно (или не равно нулю), выполняется оператор(ы), составляющие тело цикла. После этого программа снова возвращается к проверке условия выполнения цикла и так до бесконечности, если программист не позаботится о некоторых действиях, которые смогут оказать влияние на значение условия продолжения цикла.

// этот цикл будет выполняться бесконечно

// пока не будет прерван нажатием Ctrl+C

int i=10;

while(i>0)

{

cout << ” i= ”<<i<<”\n”;

}

// а этот цикл выведет на экран 10 значений переменной i

int i=10;

while(i>0)

{

cout << ” i= ”<<i<<”\n”;

i--;

}

Условие while(i>0) можно заменить на более лаконичное, но менее наглядное: while(i) .

А вот как с помощью оператора while можно распечатать строку символов:

int i=0;

char car[20]="abrakadabra";

while(car[i])

{

cout<<car[i];

i++;

}

Выполнение цикла прекратится, как только будет достигнут признак конца строки \0. При этом символы интерпретируются как целые в соответствии со значением их ASCII кода.

2.2.4. Цикл do while

Третьим типом цикла в С++ является цикл do while. Синтаксис цикла выглядит так:

do

тело цикла

while (условие продолжение цикла); // обратите внимание

// на точку с запятой!

От двух предыдущих он отличается тем, что это цикл с постусловием, т.е. сначала выполняется тело цикла, а затем проверяется условие его выполнения. Таким образом, цикл выполняется хотя бы один раз. Цикл с постусловием используется гораздо реже, чем циклы с предусловием, но иногда цикл do while имеет смысл.

// в этом примере программа должна получить число до его проверки

#include <iostream.h>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]