Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Языки программирования (пособие).doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
965 Кб
Скачать
☆

2.2.6Цикл do-while

Цикл do-while отличается от while тем, что проверка условия работы производится не в начале итерации, а после нее. Аналогом этого цикла в языке Паскаль является цикл repeat-until. Проверка условия работы в конце итерации гарантирует выполнение хотя бы одной итерации вне зависимости от условия. Синтаксис цикла do-while следующий:

do {

<тело цикла>;

} while (<условие работы>);

Ключевое слово do отмечает начало цикла, а условие работы указывается в конце. Посмотрите, как выглядит программа вывода чисел от 1 до 100 с использованием цикла do-while.

#include <iostream>

using namespace std;

int main() {

int i=1;

do {

cout << i << " ";

i++;

} while (i<=100);

system("pause");

return 0;

}

Реализуем игру «Угадай число!» с помощью этого цикла, что является естественным, поскольку первая попытка должна быть произведена в любом случае, ведь угадать число с нуля попыток невозможно.

#include <iostream>

using namespace std;

int main() {

setlocale(LC_ALL, "Russian");

int secret_n = rand() % 10; //Загадываем число

int your_n;

int n_trials = 0; //Счетчик количества попыток

do {

cout << "Введите число:\n";

cin >> your_n;

n_trials++;

} while (secret_n != your_n);

cout << "Угадали " << n_trials << " попыток\n";

system("pause");

return 0;

}

2.2.7Перевод числа в другую систему счисления

С использованием цикла while очень легко написать программу перевода числа из одной системы счисления в другую.

#include <iostream>

using namespace std;

int main() {

int n, base;

cin >> n;

cin >> base; //Вводим основание системы счисления

while (n > 0) {

cout << n%base;

n/=base;

}

system("pause");

return 0;

}

2.2.8Бесконечный цикл while

Во всех предыдущих примерах у цикла задавалось условие окончания, однако это не является обязательным. Существует так называемый бесконечный цикл. Прервать его может только команда, расположенная в теле цикла. Такими командами могут быть break, exit(), goto. Команда break прерывает цикл, команда exit() завершает программу, команда goto переходит на метку, которая может быть расположена вне цикла. Для создания бесконечного цикла нужно придумать тождественно истинное условие. Таким условием может быть 1==1, 10<20 и т.д. Однако обычно рекомендуют писать так:

while(true) {

…

}

Такой цикл можно использовать при реализации меню:

#include <iostream>

using namespace std;

int main() {

setlocale(LC_ALL, "Russian");

while (true) {

system("cls"); //

cout << "1 - Приветствие" << endl;

cout << "2 - Прощание" << endl;

cout << "0 - Выход" << endl;

cout << "Ваш выбор - ";

int choice;

cin >> choice;

switch (choice) {

case 1 :

cout << "Привет" << endl;

break;

case 2 :

cout << "Пока" << endl;

break;

case 0 :

exit(EXIT_SUCCESS);

}

system("pause");

}

return 0;

}

2.2.9Контрольные вопросы

  1. Объясните, зачем нужны циклы?

  2. Перечислите известные вам типы циклов языка C++.

  3. Приведите примеры использования циклов while и do-while.

  4. Приведите примеры, когда определенный тип цикла использовать лучше, чем другой.

  5. Приведите пример программы, которая написана двумя способами: с помощью циклов while и do-while.

  6. Какой цикл в выполняет минимум одну итерацию вне зависимости от условия его работы?

  7. Приведите пример вычисления суммы элементов последовательности, используя циклы?

  8. Как перевести число из одной системы исчисления в другую? Приведите пример.

  9. Как реализовать бесконечный цикл while? Приведите пример его использования.

  10. Выведите на экран все числа от 1 до 1000, делящиеся на 3.