Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
#include <iostream>
int main() {
int n = 2;
switch (n) {
case 1: std::cout << 'a'; break;
case 2: std::cout << 'b';
case 3: std::cout << 'c';
default: std::cout << 'd';
}
}bcd
- Ждать
b: меткаcaseне завершает код перед ней, поэтому безbreakвыполнение продолжается вcase 3и дальше. - Ждать
bc: проваливание не останавливается наdefault— это такая же метка, какcase, поэтому печатается иd.
- Изменит ли
[[fallthrough]]вывод этой программы и зачем его ставят? - Почему переменная, объявленная сразу после метки
caseбез фигурных скобок, может вызвать ошибку компиляции?