Цикл с предусловием while
Правила организации циклов
При программировании любого типа циклов необходимо придерживаться следующих правил:
§ перед циклом необходимо определить начальное значение параметра цикла (переменной, проверяемой в условном выражении);
§ правильно сформулировать условие повторения цикла;
§ проконтролировать наличие операторов в теле цикла, которые будут изменять значение параметра цикла.
Нарушение этих правил часто приводит к зацикливанию - бесконечному повторению тела цикла.
В цикле while сначала проверяется условие, и если оно истинно, то выполняются операторы (тело) цикла. Тело цикла типа while может не выполниться ни разу.
// Пример 7.1.2
// Цикл while
#include <iostream>
using namespace std;
void main() {
setlocale( LC_ALL, "Russian"); // для вывода на экран русского текста
int counter=0; // определение значения переменной цикла
while (counter < 5) { // проверка значения переменной цикла
cout << "Counter: " << counter << " Нажмите <Enter>\n";
counter++; // изменение значения переменной цикла
cin.get();
}
cout << "Цикл завершен. Counter: " << counter << "\n";
cin.get();
}
// Пример 7.1.3
// Пропуск тела цикла while
#include <iostream.>
using namespace std;
void main() {
setlocale( LC_ALL, "Russian"); // для вывода на экран русского текста
int counter; // определение значения переменной цикла
cout << "Сколько раз печатать?: ";
cin >> counter; // вводим 0 и тело цикла не выполняется
while (counter > 0) { // проверка значения переменной цикла
cout << "Hello\n";
counter--; // изменение значения переменной цикла
}
cout << " Цикл завершен. Counter: " << counter << endl;
cin.get();cin.get();
}
5. Цикл с пост-условием do…while
В цикле do…while сначала выполняется тело цикла, а затем проверяет условие его повторного выполнения. Тело цикла типа do…while обязательно выполнится хотя бы один раз.
// Пример 7.1.4
// Цикл do...while
#include <iostream.>
using namespace std;
void main() {
setlocale( LC_ALL, "Russian"); // для вывода на экран русского текста
int counter; // определение значения переменной цикла
cout << "Сколько раз печатать?: ";
cin >> counter; // вводим 0
do { // тело цикла выполняется хотя бы один раз
cout << "Hello\n";
counter--; // изменение значения переменной цикла
} while (counter > 0) // проверка значения переменной цикла
cout << " Цикл завершен. Counter: " << counter << endl;
cin.get();
}