Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lekcii_1_10 / Лекция 04.pptx
Скачиваний:
39
Добавлен:
21.05.2015
Размер:
2.26 Mб
Скачать

Тело while-цикла может вообще не содержать ни

одной инструкции. Вот пример:

while(rand() != 100);

Этот цикл выполняется до тех пор, пока

случайное число, генерируемое функцией rand(),

не окажется равным числу 100.

Цикл do-whileэто единственный цикл, который

всегда делает итерацию хотя бы один раз.

В отличие от циклов for и while, в которых условие проверяется при входе, цикл do-while

проверяет условие при выходе из цикла. Это

значит, что цикл do-while всегда выполняется

хотя бы один раз.

Его общий формат имеет такой вид. do

{

инструкции;

}

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

В следующей программе цикл do-while выполняется

до тех пор, пока пользователь не введет число

100.

#include <iostream> using namespace std; int main()

{

int num;

do

{

cout << "Введите число (100 - для выхода):

";

cin >> num;

}

while(num != 100);return 0;

}

Инструкция continue позволяет немедленно

перейти к выполнению следующей итерации цикла.

В C++ существует средство "досрочного" выхода из текущей итерации цикла. Этим средством

является инструкция continue. Она принудительно

выполняет переход к следующей итерации, опуская

выполнение оставшегося кода в текущей.

#include <iostream> using namespace std; int main()

{

int x;

for(x=0; x<=100; x++) {if(x%2) continue;

cout << x << ' ';

}

return 0;

}

Инструкция break позволяет немедленно выйти из

цикла.

При обнаружении внутри цикла инструкции break цикл завершается, а управление передается

инструкции, следующей, после цикла.

#include <iostream> using namespace std; int main()

{

int t;

// Цикл работает для значений t от 0 до 9, а не

до 100!

for(t=0; t<100; t++) {

if(t==10) break;

cout << t <<' ';

}

return 0;

}

По нажатию клавиши выполнение цикла

останавливается.

for(i=0; i<1000; i++) {

// Какие-то действия.

if(kbhit()) break;

}

Инструкция break приводит к выходу из самого внутреннего цикла. Рассмотрим пример.

#include <iostream> using namespace std; int main()

{

int t, count;

for(t=0; t<100; t++) {count = 1;

for(;;) {

cout << count << ' ';

count++;

if(count==10) break;

}

cout << '\n';

}

return 0;

}

В C++ разрешено использовать до 256 уровней вложения. Вложенные циклы используются для решения задач самого разного профиля. Например, в следующей программе вложенный цикл for позволяет найти простые числа в диапазоне от 2 до 1000.

/* Эта программа выводит простые числа, найденные в диапазоне от 2 до 1000.

#include <iostream> using namespace std; int main()

{

int i, j;

for(i=2; i<1000; i++) {for(j=2; j<=(i/j); j++)

if(!(i%j)) break; // Если число имеет множитель,

значит, оно не простое.

if(j > (i/j)) cout << i << " - простое число\n";

}

return 0;

}

Инструкция goto — это С++-инструкция

безусловного перехода.

Метка — это идентификатор, за которым стоит двоеточие.

Например, с помощью инструкции goto и метки

можно организовать следующий цикл на 100

итераций.

х = 1;

loop1:

х++;

if(х < 100) goto loop1;

Иногда инструкцию goto стоит использовать для

выхода из глубоко вложенных инструкций цикла.

Рассмотрим следующий фрагмент кода.

for(...)

{

for(...)

{

while(...)

{

if(...) goto stop;

}}

}

stop:

cout << "Ошибка в программе.\n";

Соседние файлы в папке lekcii_1_10