Цикл с предусловием 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();

}