1) Оператор switch принимает целочисленное значение в скобках;
2) При срабатывании любой ветки оператора switch (case или default) идет выполнение операндов до оператора break или конца оператора switch;
3) Если не сработала ни одна ветка case, то переходит управление на ветку default (при ее наличии) или завершается выполнение оператора switch;
using namespace std;
int main(){
    int a = 0;
    switch (a) {
        case -1:
            cout << "a = -1" << endl;
        break;
        case 0: // При срабатывании выведет 0 и 2, так как нет break после 0
            cout << "a = 0" << endl;
        case 2:
            cout << "a = 2" << endl;
        break;
        default: // Ветка по умолчанию, если ни один case не сработал
            cout << "default" << endl;
    }
}
/* Вывод программы:
a = 0
a = 2 
*/