Цикл с параметром for

Цикл for - другая, удобная форма записи цикла с предусловием. Цикл типа for объединяет все три этапа построения цикла : инициализацию параметра цикла, проверку условия повторения цикла и изменение параметра цикла.

// Пример 7.1.7

// Правила программирования циклов

#include <iostream>

using namespace std;

void main(){

setlocale( LC_ALL, "Russian"); // для вывода на экран русского текста

int counter=0; // определение начального значения счетчика

while (counter < 5) { //проверка условия

counter++; // изменение счетчика

cout << "В цикле! ";

}

cout << "\nCounter: " << counter << endl;

cin.get();

}

// Пример 7.1.8

// Цикл for

#include <iostream>

using namespace std;

void main() {

setlocale( LC_ALL, "Russian"); // для вывода на экран русского текста

int counter;

// определение начального значения,проверка условия, изменение счетчика

for (counter=0; counter <5; counter++) {

cout << " В цикле! ";

}

cout << "\nCounter: " << counter << endl;

cin.get();

}

Причем возможны инициализация и изменение значений нескольких параметров.

// Пример 7.1.9

// Цикл for с несколькими операторами

#include <iostream>

using namespace std;

void main() {

setlocale( LC_ALL, "Russian"); // для вывода на экран русского текста

int i, j, k;

for (i=0, j=0 ,k=0; i<3 && j<2; i++, j++, k--)

cout << "i: " << i << "\tj: " << j << "\tk:" << k << endl;

cin.get();

}

 

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

// Пример 7.1.10

// Пропуск составляющих цикла for

#include <iostream.>

using namespace std;

void main()

{

setlocale( LC_ALL, "Russian"); // для вывода на экран русского текста

int counter=0;

for ( ; counter < 5 ; ) {

counter++;

cout << " В цикле! ";

cin.get();

}

cout << "\nCounter: " << counter << endl;

cin.get();cin.get();

}

Тела у цикла for может не быть. Параметр в цикле for можно объявить непосредственно внутри цикла. В этом случае нужно вспомнить, что областью видимости в С++ является блок и после завершения цикла этот параметр может стать недоступным.


// Пример 7.1.11

// Пустые циклы for

#include <iostream>

using namespace std;

void main() {

setlocale( LC_ALL, "Russian"); // для вывода на экран русского текста

//int i;

for (int i=0; i<5; cout << "i: " << ++i << endl);

// Возможна ошибка

//cout << "i=" << i << endl;

cin.get();

}