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

Вложенные циклы do

Вложенные циклы do...while можно использовать для того, чтобы обеспечить несколько уровней повторов. Можно, например, использовать внешний цикл, чтобы повторять всю программу, пока пользователь не решит заняться чем-нибудь другим, и одновременно внутренний цикл для проверки правильности ввода, как это показано на рис.9.8. Внутренний цикл используют для ввода чисел, значения которых должны изменяться в промежутке от 0 до 100. Если ввод данных соответствует этому условию, внутренний цикл завершается и выполняются инструкции внешнего цикла. Выполнение внешнего цикла повторяется, пока является истинным условие

while (repeat == 'y' || repeat == 'Y');

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

Использование цикла while

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

while (condition) instruction;

Синтаксис показан на рис.9.9. Составные инструкции записываются следующим образом:

while (condition)

{

instructions;

}

Рис. 9.9. Структура цикла while

Так же, как и цикл do, цикл while выполняется до тех пор, пока является истинным условие, но в отличие от конструкции do...while, условие проверяется до начала выполнения цикла, даже если цикл выполняет- ся первый раз. Если условие окажется ложным, цикл не будет выполнен ни разу.

Используя цикл для проверки правильности ввода, помещайте первую инструкцию ввода вне цикла. По- сле этого можно продолжать запрос о вводе данных до тех пор, пока не будет введено правильное значе- ние. Например, таким образом:Так же, как и цикл do, цикл while выполняется до тех пор, пока является истинным условие, но в отличие от конструкции do...while, условие проверяется до начала выполнения цикла, даже если цикл выполняется первый раз. Если условие окажется ложным, цикл не будет выполнен ни разу.

Printf("Введите размер скидки: "); scanf("%f", &discount);

while (discount < 0 || discount >= 1)

{

printf("Вы ввели неправильное значение"); scanf("%f", &discount);

}

Комбинирование циклов разных типов

В программе можно использовать любые комбинации вложенных циклов всех типов: while, for и do...while, если этого требует логика построения программы. В приведенной ниже программе, например, использует- ся цикл while, вложенный внутрь цикла for. В программе осуществляется преобразование десяти значений температуры, находящихся в пределах от 0 до 100. Значения вводятся с клавиатуры.

/*mixed.c*/ main()

{

int temp, count; float celsius;

for (count = 1; count <= 10; count++)

{

printf("Введите значение температуры в пределах от 1 до 100: ");

scanf("%d", &temp); while (temp < 0 || temp > 100)

{

printf("Ошибка,

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

scanf("%d", &temp);

}

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

соответствует %6.2f по Цельсию\n", temp, celsius);

}

}

Внешний цикл for повторяется ровно 10 раз. Внутренний цикл будет повторяться до тех пор, пока пользо- ватель не введет правильные данные.