×
Traktatov.net » Язык программирования C [Лекции и упражнения, 6-е изд.] » Читать онлайн
Страница 526 из 557 Настройки

Форма 1

if(выражение) оператор

Если выражение истинно, то выполняется оператор.


846 Приложение Б

Форма 2

if(выражение) оператор1 else

оператор2

Если выражение истинно, то выполняется оператор1. В противном случае выполняется оператор2.

Форма 3

if(выражение1) оператор1

else if(выражение2)

оператор2

else

операторЗ

Если выражение! истинно, то выполняется оператор1. Если же выражение! ложно, но выражение2 истинно, то выполняется оператор2. Иначе, если оба выражения ложны, выполняется операторЗ.

Пример

if (legs = 4)

printf("Это может быть лошадь. \n"); else if (legs > 4)

printf("Это не лошадь . \n");


else /* случай, когда legs < 4 */

{

legs++;

printf("Теперь на одну ногу стало больше.\n");

}

Сводка: множественный выбор с помощью switch

Ключевые слова

Ключевым словом оператора switch является switch.

Общий комментарий

Управление передается оператору, снабженному меткой выражение. Поток управления затем проходит остальные операторы внутри блока switch, если только снова не будет перенаправлен. Как выражение, так и метки case должны иметь целочисленные значения (включая тип char), а метки должны быть константами или выражениями, состоящими исключительно из констант. Если ни одна метка не соответствует значению выражения, управление переходит к оператору, помеченному меткой default, если это предусмотрено. Иначе управление переходит к оператору, следующему за оператором switch. После того, как управление передается по определенной метке, выполняются все последующие операторы внутри switch, до конца switch или до оператора break в зависимости от того, что встретится раньше.

Форма

switch (выражение)

{

case метка1 : оператор1 case метка2 : оператор2 default : операторЗ

}


Справочные материалы 847

Операторов, снабженных метками, может быть больше двух, а конструкция default является необязательной.

Примеры

switch (value)

case 1     : find_sum(ar, n);

break;

case 2     : show_array (ar, n);

break;

case 3     : puts("Всего хорошего!");

break;

default : puts("Неправильный выбор, попробуйте еще раз."); break;

}

switch (letter)

{

case 'a' :

case 'e' : printf ("%d является гласной буквой\n", letter); case 'c' :

case 'n' : printf("%d находится в слове \"cane\"\n", letter); default : printf("Всего хорошего.\n");

}

Если letter имеет значение 'а' или 'e', то выводятся все три сообщения, а если 'с' или 'n' — то два последних сообщения. Все прочие значения приводят к выводу только последнего сообщения.

Сводка: переходы в программе

Ключевые слова

Ключевыми словами для переходов в программе являются break, continue и goto.

Общий комментарий

Эти три инструкции — break, continue и goto — заставляют поток управления программы переходить из одного места кода в другое.

Команда break

Команда break может использоваться с любой из трех форм циклов и с оператором switch. Она вынуждает поток управления программы пропустить остаток цикла или оператора switch, который ее содержит, и продолжить выполнение со следующей инструкции после цикла или switch.

Пример

while ((ch = getchar()) !=EOF)

{

putchar(ch); if (ch == ' ')

break; // прекратить выполнение цикла chcount++;