Цикл с параметром 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();
}