Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
42
Добавлен:
16.02.2016
Размер:
558.59 Кб
Скачать

Int main ()

{

int counter = 4;

short dec;

while(1)// Бесконечный цикл

{

cout « "Введите десятичное число ";

cout « "от 0 до 15: " ;

cin » dec;

cout « "Двоичное представление";

cout « " числа" « dec « ": ";

while(counter)

{

if(dec & 8)

cout « 1;

else

cout « 0;

dec = dec « 1;

counter--;

}

cout « ' \n';

counter = 4;

}

return 0;

}

В приведенном примере вводится десятичное число dec, и далее в цикле while осуществляется проверка четвертого бита (число от 0 до 15 может быть закодировано четырьмя битами). Если бит установлен (равен единице), на экран выводится единица, а если он находится в сброшенном состоянии - выводится ноль.

Циклы do-while

В отличие от оператора while, цикл do-while сначала выполняет тело (оператор или блок), а затем уже осуществляет проверку выражения на истинность. Такая конструкция гарантирует, что тело цикла будет обязательно выполнено хотя бы один раз.

Синтаксис оператора имеет вид:

do

оператор_или_блок_операторов ; // тело цикла

while(выражение)

Одно из часто используемых применений данного оператора - запрос к пользователю на продолжение выполнения программы:

#include <iostream.h>

Int main ()

{

char answer;

do

{

// Тело программы

...

cout « "Продолжать выполнение?";

cin » answer;

}

while(answer != 'N')

return 0;

}

Таким образом, тело программы будет повторяться до тех пор, пока пользователь на вопрос "Продолжать выполнение?" не ответит символом ' N'. При этом, в качестве переменной, используемой для хранения этого значения, выступает answer.

Оператор break

Если нужно предусмотреть выход из оператора цикла в нескольких местах, не дожидаясь выполнения оставшейся части кода, то это можно сделать с помощью оператора break. Данный оператор может встречаться в теле цикла сколько угодно раз и, как и в случае switch-case, передает управление вне тела конструкции.

В приведенном ниже примере пользователю предлагается ввести число, которое в дальнейшем тестируется на попадание в один из трех диапазонов. На самом деле, если введенное число больше трех, происходит выход из тела цикла while и запрос на ввод числа повторяется.

#include <iostream.h>

Int 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);

return 0;

На практике оператор break часто используют для выхода из бесконечного цикла.

for( ; ; )

{

// Условие 1:

if(...)

{

...

break;

}

// Условие 2

if (...)

{

……

break;

}

}

В данном примере, если выполнится любой из условных операторов if, будет достигнут и соответствующий оператор break, который выведет управление из тела конструкции бесконечного цикла for.

Оператор continue

Так же, как и ключевое слово break, оператор continue прерывает выполнение тела цикла, но в отличие от первого, он предписывает программе перейти на следующую итерацию цикла.

В качестве примера использования оператора continue предлагается программа нахождения простых чисел (делящихся на 1 и на самих себя).

#include <iostream.h>

Соседние файлы в папке ЛекцииКарасева