В приведенном примере вводится десятичное число dec, и далее в цикле while осуществляется проверка четвертого бита (число от 0 до 15 может быть закодировано четырьмя битами). Если бит установлен (равен единице), на экран выводится единица, а если он находится в сброшенном состоянии - выводится ноль.
В отличие от оператора while, цикл do-while сначала выполняет тело (оператор или блок), а затем уже осуществляет проверку выражения на истинность. Такая конструкция гарантирует, что тело цикла будет обязательно выполнено хотя бы один раз.
Синтаксис оператора имеет вид:
do
оператор_или__блок_операторов;
while(выражение)
Одно из часто используемых применений данного оператора - запрос к пользователю на продолжение выполнения программы:
#include <iostream.h>
void main ()
{
char answer;
do
{
// Телопрограммы
...
cout<< "Продолжать выполнение?";
cin>> answer;
}
while(answer != ‘N’)
}
Таким образом, тело программы будет повторяться до тех пор, пока пользователь на вопрос "Продолжать выполнение?" не ответит символом 'N', При этом, в качестве переменной, используемой для хранения этого значения, выступает answer.
Вполне вероятно, у вас уже назревает вопрос, что же делать, если нужно предусмотреть выход из оператора цикла в нескольких местах, не дожидаясь выполнения оставшейся части кода. Здесь на помощь программисту приходит оператор break. Данный оператор может встречаться в теле цикла сколько угодно раз и, как и в случае switch-case, передает управление вне тела конструкции.
В приведенном ниже примере пользователю предлагается ввести число, которое в дальнейшем тестируется на попадание в один из трех диапазонов. На самом деле, если введенное число больше трех, происходит выход из тела цикла while и запрос на ввод числа повторяется.
#include <iostream.h>
void main()
{
int answer = 0;
do
{
while(answer)
{
if(answer <= 3)
cout<<”Меньше 3-x\n”;
break; // Выход из цикла while
//В этот фрагмент хода никогда не попадем
if(answer > '3' && answer < '7')
cout<<”От 3-х до 7-ми \n”;
break;
if(answer >= '7’)
cout<<”Больше 7-ми\n”;
}
//В этот фрагмент кода попадаем по break
cout <<“Repeat?\n”;
cin>> answer;
}
while(answer != 0);
}
На практике оператор break часто используют для выхода из бесконечного цикла.
for( ; ; )
{
// Условие 1:
if(...)
{
...
break;
}
// Условие 2
if(...)
{
break;
}
}
В данном примере, если выполнится любой из условных операторов if, будет достигнут и соответствующий Оператор break, который выведет управление из тела конструкции бесконечного циклаfor.
Так же, как и ключевое слово break, оператор continue прерывает выполнение тела цикла, но в отличие от первого, он предписывает программе перейти на следующую итерацию цикла.
В качестве примера использования оператора continue предлагается программа нахождения простых чисел (делящихся на 1 и на самих себя).
#include <iostream.h>
void main ()
{
bool dev = false;
for(int i=2; i<50; i++)
{
for(int j>=2; j<i; j++)
{
if(i%j)
continue;
else
{
dev = true; break;
}
}
if(!dev)
cout « i << " "; dev = false;
}
}
Программа организована в виде двух вложенных циклов таким образом, что осуществляется перебор и проверка остатка от деления пары чисел, первое из которых изменяется от 2 до 50, а второе - от 2 до значения первого числа Если остаток от деления ненулевой, осуществляется продолжение внутреннего цикла по оператору continue. В случае, если остаток от деления составил 0, выполняется выход из внутреннего цикла с установкой признака деления в логической переменной dev. По окончании внутреннего цикла производится анализ логической переменной dev и вывод простого числа.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.