Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник Моя первая программа на С++.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆

Использование инструкции break

Использование флага несколько перегружает программу, так как требуется определение дополнительной переменной, введение нескольких строк для присваивания ей значения и лишняя конструкция if...else.

Можно избежать этих сложностей и выполнить ту же работу, если применить цикл while. Пример такой программы приведен в Листинге9.5.

Листинг 9.5. Использование цикла while и инструкции break.

/*break*/ main()

{

int temp; float celsius;

printf("Введите значение температуры в пределах от 0 до 100.

Ввод значения 555 прекращает работу программы: "); scanf("%d", &temp);

while (temp != 555)

{

while ((temp < 0 || temp > 100)

повторите ввод: ");

{

printf("Ошибка,

scanf("%d", &temp);

}

if (temp == 555)

break;

&& temp != 555)

celsius=(5.0/9.0)*(temp-32); printf("%d градусов по Фаренгейту

соответствует %6.2f по Цельсию\n", temp, celsius); printf("Значение введено, для

прекращения работы наберите 555: "); scanf("%d", &temp);

}

}

В этой программе на экран тоже выводятся два сообщения: одно предлагает ввести число, а второе появ- ляется при ошибочном вводе. Обратите внимание, что в этой программе отсутствует запрос о продолже- нии работы после каждого повтора цикла. Вместо этого, для окончания работы пользователю предлагает- ся ввести число 555.

Считается, что при правильном вводе данных значения чисел лежат в промежутке от 0 до 100 или равны 555, причем ввод последнего немедленно прекращает работу программы, так как в ней записаны инст- рукции:

if (temp == 555)

break;

Инструкция break завершает цикл, в который она помещена, так же, как если бы условие while или усло- вие цикла for перестало выполняться.

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

ние он должен ввести для прекращения работы, но зато при каждом повторе цикла он должен отвечать на дополнительный вопрос помимо ввода собственно значения температуры. Использование специальных значений, вроде числа 555 в нашем примере, избавляет от необходимости лишний раз нажимать на кла- виши. Однако неудобство этого способа состоит в том, что нельзя использовать некоторые значения, ко- торые могут оказаться корректными данными. Например, если прекращение работы программы происхо- дит при вводе отрицательного значения, как тогда быть, если мы хотим преобразовать значения темпера- туры ниже нуля?

Критерии «правильности» программы определяются тем, выполняется ли она без ошибок и работает ли она столько времени, сколько требуется.

Вопросы

  1. Какими критериями вы будете руководствоваться при выборе цикла

for, do или while?

  1. Какие функции выполняют параметры for?

  2. В каком случае прекращается выполнение цикла for?

  3. Что такое вложенный цикл?

  4. Как можно использовать флаг?

  5. Каково назначение инструкции break?