Шрифт:
if(integer < 1000 && integer > 2)
В то время как замена этой строки оператором switch приведет к необходимости ввести в программу метки для всех целых чисел от 2 до 999. Тем не менее, если у вас есть возможность применить оператор switch, ваша программа будет выполняться более эффективно.
Резюме: множественный выбор вариантов с помощью оператора switch
Управление в программе передается оператору, у которого в качестве метки используется значение некоторого выражения. Затем в процессе прохождения программы будут выполняться оставшиеся операторы, пока не произойдет новый переход.
Как выражения, так и метки должны иметь значения целого типа (включая тип char), метки должны быть константами или константными выражениями. Если не которому значению выражения не соответствует никакая метка, управление передается оператору с меткой default (если такой имеется). В противном случае, управление передается оператору, следующему за оператором switch.
III. Форма:
switch (выражение)
{ case метка1: оператор1
case метка2: оператор2
default: оператор3
}
В операторе может присутствовать более чем 2 помеченных оператора, а наличие метки default является необязательным.
IV. Пример
switch (letter)
{
case 'a':
case 'e': printf(" %c - этогласная\n ", letter);
case 'c':
case 'n': printf(" Символ%свнаборебукв\ саnе\ n ", letter);
default: printf(" Добрыйдень. \n" );
}
Если переменная letter имеет значение 'a' или 'e', будут выведены на печать все три сообщения, если же 'c' или 'n', то последние два. В случае остальных значений будет напечатано только последнее сообщение.
Изложенный здесь материал позволит вам писать гораздо более мощные и обладающие большими возможностями программы, чем раньше. В справедливости этого утверждения вы сможете убедиться, если сравните некоторые из примеров, приведенных в данной главе, с программами, рассмотренными в предыдущих главах. Но вы изучили еще далеко не все. Вот почему вам придется одолеть еще немало страниц этой книги.
ЧТО ВЫ ДОЛЖНЫ БЫЛИ УЗНАТЬ В ЭТОЙ ГЛАВЕ
Как осуществить выбор из двух возможностей выполнить оператор или пропустить его: с помощью оператора if.
Как осуществить выбор одного из двух вариантов: с помощью оператора if-else.
Как осуществить выбор одного из нескольких вариантов: с помощью операторов else-if, switch
Операции отношения: > >= = = <= < !=
Логические операции: && || !
ВОПРОСЫ И ОТВЕТЫ
Вопросы
1. Определите, какие выражения истинны, а какие ложны.
а. 100 > 3
б. 'а' > 'с'
в. 100 > 3 && 'а' > 'с'
г. 100 > 3 || 'a' > 'с'
д. !(100 > 3)
2. Запишите выражения, соответствующие следующим условиям
а. Значение number равно или больше 1, но меньше 9
б. Значение ch не равно q или k
в. Значение number лежит между 1 и 9, но не равно 5
г. Значение number не лежит между 1 и 9
3. В программе, приведенной ниже, наряду с неоправданно сложными условными выражениями имеются и прямые ошибки. Уточните эту программу и исправьте в ней ошибки.
main /* 1 */
{ /* 2 */
int weight, height; /* вес в фунтах, рост в дюймах */