Задача-ребус:
что будет выведено на экран?
int n = 3;
int i = 0;
switch (n % 2) {
case 0:
do {
++i;
case 1:
++i;
} while (--n > 0);
}
std::cout << i;
При n = 3, остаток от деления (n % 2) равен 1, соответственно в конструкции switch/case происходит переход на метку 1 (case 1:) и переменная i увеличивается на 1.
Далее значение n уменьшается на 1 и проверяется условие выхода из цикла.
n = 2, что больше 0. Выхода из тела цикла нет, таким образом выполнение продолжается с начала блока do {. В теле цикла происходит увеличение переменной i на 2 (++i; case 1: ++i;). Конструкция switch/case в данном случаи уже не "работает". Значение n уменьшается на 1 и проверяется условие выхода из цикла.
n = 1, условие выхода из цикла не выполнено, повторяется предыдущий пункт. Переменная i увеличивается еще на 2.
n = 0, цикл завершается и соответственно конечное значение i равно 5.
Проверка онлайн
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости