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

Составные инструкции

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

В качестве примера рассмотрим программу, текст которой приведен в Листинге8.2. Здесь при истинности одного условия выполняются две инструкции. Открывающая фигурная скобка после условия указывает начало составной инструкции, а закрывающая фигурная скобка в конце второй инструкции обозначает ее конец. Все инструкции, помещенные внутри фигурных скобок, будут выполнены только при истинности соответствующего условия. Табуляцию мы использовали только для того, чтобы подчеркнуть, что обе ин- струкции являются частями инструкции if. Для компилятора же табуляция не содержит никакой информа- ции.

Листинг 8.2. Составные инструкции.

/*luxury2.c*/ main()

{

float cost, tax, luxury, total; luxury = 0.0;

printf("Введите цену товара: "); scanf("%f", &cost); tax = cost * 0.06;

if (cost > 40000.00)

{

luxury=cost*0.005; printf("Сумма налога на предметы

роскоши составляет %.2f\n", luxury);

}

total = cost + tax + luxury;

printf("Стоимость единицы товара с учетом налогов составляет %.2f", total);

¶a++ae æepcue u+uru æɵuyye+a sneuwpo++ɵu usgawenacwæou "Books-shop".

Pacupocwpa+e+ue, upogaua, uepesauuca ga++on u+uru unu ee ¬acwen 3AMPE[EHª.

O æcex +apyue+uex upoca6a coo6yawa uo agpecy piracy@books-shop.com

}

Конструкция if...else

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

if (cost > 40000.00)

{

luxury = cost * 0.005;

printf("Размер налога на предметы роскоши для \

данного наименования составляет %.2f", luxury);

}

if (cost < 40000.00)

puts("Для данного наименования налог \

на предметы роскоши не установлен");

Но есть более эффективный способ. Можно объединить обе инструкции в одну, пользуясь тем, что есть только два возможных случая в использовании одной и той же переменной: либо цена товара больше 40 тысяч долларов, либо цена товара меньше или равна указанной сумме. Если одно из условий не выполня- ется, следовательно, выполняется второе условие, так что можно

Рис. 8.2. Инструкции, модифицированные с использованием ключевого слова else

скомбинировать их, используя ключевое слово else (которое переводится как «иначе»):

if (condition)

instruction;

else

instruction;

Здесь сказано: «Если условие истинное, то должна быть выполнена команда, являющаяся частью инст- рукции if, иначе надо выполнить инструкцию, следующую за else». Инструкция, помещенная после клю- чевого слова else, выполняется только в том случае, если условие оказалось ложным. Если возникает не- обходимость выполнить в этом случае несколько инструкций, можно использовать составную инструкцию, заключив ее в фигурные скобки точно так же, как для if. Точка с запятой ставится в конце каждой инст- рукции и не ставится после ключевого слова else.

Для того чтобы вывести на экран сообщение об отсутствии налога на предметы роскоши, программу мож- но слегка изменить, как это показано на рис.8.2. Обратите внимание, что в этом случае нет необходимо-

сти непременно присваивать переменной luxury начальное значение, так как в инструкции if теперь учи- тываются все возможные варианты условия.