- Получить ссылку
- Электронная почта
- Другие приложения
Вложенные условные операторы if
Оператор if является вложенным, если он вложен, т.е. находится внутри другого оператора if или else. В практике программирования вложенные условные операторы используются довольно часто. Во вложенном условном операторе фраза else всегда ассоциирована с ближайшим if в том же блоке, если этот if не ассоциирован с другой фразой else.
Например:
if(i) { if(j) statement 1; if(k) statement 2; /* этот if */ else statement 3; /* ассоциирован с этим else */ } else statement 4; /* ассоциирован с if(i) */
Последняя фраза else не ассоциирована с if(j) потому, что она находится в другом блоке. Эта фраза else ассоциирована с if(i). Внутренняя фраза else ассоциирована с if(k), потому что этот if — ближайший.
Стандарт С89 допускает 15 уровней вложенности условных
операторов, С99 — 127 уровней. В настоящее время большинство
компиляторов допускают значительно большее количество уровней
вложенности. Однако на практике необходимость в глубине вложенности,
большей, чем несколько уровней, возникает довольно редко, так как
увеличение глубины вложенности быстро запутывает программу и делает ее
нечитаемой.
В следующем примере вложенный оператор if
используется в модернизированной программе для игры в магическое число. С
его помощью играющий получает сообщение о характере ошибки:
/* Магическое число, программа N3. */ #include <stdio.h> #include <stdlib.h> int main(void) { int magic; /* магическое число */ int guess; /* попытка игрока */ magic = rand(); /* генерация магического числа */ printf("Угадай магическое число: "); scanf("%d", &guess); if (guess == magic) { printf("** Верно **"); printf("Магическое число равно %d\n", magic); } else { printf("** Неверно, "); if(guess > magic) printf("слишком большое\n"); /* вложенный if */ else printf("слишком малое\n"); } return 0; }
Комментарии
Отправить комментарий