передал в switch и сделал case 1, case 2 и тд, но при этом забыл break; Почему перенаня пройдёт проверку case 2, если она не равна 2?
int a = 1;
switch(a){
case 1:
cout << "Переменная равна 1" << endl;
case 2:
cout << "ПЕременная равна 2" << endl;
break;
сам ответил же, забыл break
1. Есть чат для новичков 2. Потому что ты не поставил брейк, потому 2 выводит У тебя код не выходит из свитча и продолжает выполнять все, что идет дальше Это особенность данной конструкции
если не сложно можешь отправить чат для новичков?
1. так этож supapro, а не pro
Соре, дезинформация Ты прав В чатах запутался
про break знаю Но.. почему выполняется условия с case 2? Переменная равна же 1 => case 2 - false
Без брейка выполнение кода идет дальше Последовательно
break — оператор завершения цикла (любого) или выхода из swtich.Тебе необходимо ставить break после тех кейсов, после отработки которых надо выйти.
Так устроена управление потоком управления Извиняюсь за тавтологию в этой конструкции си и c++
Не забывай брейк брейк
В операторе Switch вот эти вот конструкции с кейс называются не условиями, а метками, потому что это не условие проверяется что переменная из свитч равна этому значение, а если переменная равна этому значению, то управление передаётся на метку с этим значением. А далее Ты должен сам управлять этим потоком управления с помощью команд брейк Return continue и так далее. За счёт этого можно строить на базе оператора Swatch более гибкие управляющие конструкции Например можно объединить каких-то два смежных похожих значение переменных в один блок и даже частично объединить их в один блок то есть по одному значению что-то сделать а потом сделать то же самое что и делается в случае другого значения
Не, не тавтология ни капли. Спасибо!
Спасибо большое! Теперб всё понятно
Обсуждают сегодня