- •Лабораторная работа №7 циклы
- •Использование цикла for
- •Создание паузы в программе
- •Составные инструкции
- •Использование переменных
- •Вложенные циклы
- •Использование цикла do...While
- •Вложенные циклы do
- •Использование цикла while
- •Комбинирование циклов разных типов
- •Проектирование программы
- •Использование флагов
- •Использование инструкции break
Использование инструкции break
Использование флага несколько перегружает программу, так как требуется определение дополнительной переменной, введение нескольких строк для присваивания ей значения и лишняя конструкция if...else. Можно избежать этих сложностей и выполнить ту же работу, если применить цикл while. Пример такой программы приведен в Листинге 5.
Листинг 5. Использование цикла while и инструкции break.
/*break*/
main()
{
int temp;
float celsius;
printf("Введите значение температуры в пределах от 0 до 100. Ввод значения 555 прекращает работу программы: ");
scanf("%d", &temp);
while (temp != 555)
{
while ((temp < 0 || temp > 100)
&& temp != 555)
{
printf("Ошибка, повторите ввод: ");
scanf("%d", &temp);
}
if (temp == 555)
break;
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 .06 1.06 2 .12 2.12
* * * * * * * * * * * * * * * * * * * * * * * * * * * * *
main() { float row, column; puts("\t\tТаблица Пифагора\n\n"); for (row = 1; row <= 10; row++) { for (column = 1; column <= 10; column+) printf("%d", row * column); } putchar('\n'); } |