Цикл с предусловием реализует структурную схему, приведенную на рис. 3.1, а, и имеет вид:
while (выражение) оператор
Выражение определяет условие повторения тела цикла, представленного простым или составным оператором. Выполнение цикла начинается с вычисления выражения. Если оно истинно (не равно false), выполняется оператор цикла. Если при первой проверке выражение равно false, цикл не выполнится ни разу. Тип выражения должен быть арифметическим или приводимым к нему. Выражение вычисляется перед каждой итерацией цикла. Когда выражение оказывается ложным, управление передается следующему после цикла оператору.
Тело цикла может состоять не из одного оператора, а представлять собой блок.
Пример (программа находит все делители целого положительного числа):
Для краткости изложения начало всех программ этой главы не приводится, но подразумевается
int num;
cout <<RUS("\nВведите число: "); cin>> num;
int div = 2; // кандидат на делитель
while (div <= num)
{if (!(num % div))cout << div <<"\n";
|
|
div++;}
Для краткости изложения начало всех программ этой главы не приводится, но подразумевается, что оно включает функцию RUS, известную из предыдущих примеров, а также необходимые директивы и библиотеки.
2.2 Цикл с постусловием (do … while)
Цикл с постусловием реализует структурную схему, приведенную на рис. 3.1, б, и имеет вид:
do оператор while (выражение);
Сначала выполняется оператор или блок, составляющий тело цикла, а затем вычисляется выражение. Если оно истинно (не равно false), тело цикла выполняется еще раз. Цикл завершается, когда выражение станет равным false или в теле цикла будет выполнен какой-либо оператор передачи управления. Тип выражения должен быть арифметическим или приводимым к нему.
Пример (программа осуществляет проверку ввода):
char answer;
do{cout << RUS("\nКупи слоника! "); cin >> answer; }
while (answer!= 'y');