Способы замены break в switch - C (СИ)
Формулировка задачи:
if( ) {
continue;
};Решение задачи: «Способы замены break в switch»
int a(void)
{
int i = 2;
switch (i)
if (0) // <-- dead code
case 0: printf("0\n");
else if (0) // <-- dead code
case 1: printf("1\n");
else if (0) // <-- dead code
case 2: printf("2\n");
else if (0) // <-- dead code
case 3: printf("3\n");
else // <-- dead code
default: printf("default\n");
return 0;
}
Объяснение кода листинга программы
В данном коде реализована функция a, которая не принимает аргументов и возвращает 0.
Внутри функции объявлена переменная i со значением 2.
Затем следует конструкция switch (i), которая проверяет значение переменной i и в зависимости от него выполняет одно из действий.
Но в данном коде все действия, обозначенные командой printf, являются мёртвым кодом, так как условие после if (0) всегда будет ложным.
Это может быть сделано для того, чтобы проверить, будет ли выполнено какое-либо действие в данном случае.
В данном случае не будет выполнено ни одно действие, так как все условия после if (0) являются ложными.
Поэтому весь код внутри switch (i) является мёртвым кодом и не будет выполнен.
Таким образом, при вызове функции a на экран будет выведено только default, так как это единственный вариант, который не зависит от значения переменной i.