Здравствуйте, _hum_, Вы писали:
__>естественная — та, что естественна для человека, читающего программу. если написано if(a > 0) then print("positive integer"), то даже человек, первый раз читающий эту конструкцию, догадается о ее семантике. теперь проделайте то же самое со switch/case — угу.
Если брать пример Ваш:
switch (1) {
case 1: std::cout << '1';
case 2: std::cout << '2';
}
Что тут не естественного?
В Вашей некой системе состояние 1, интерпретируется как:
1) выполнение двух инструкций std::cout << '1'; std::cout << '2';
2) Или как ошибка, потому что забыли break;
В случае один — Вы немного криво пишите, лучше написать
switch (1) {
case 1:
case 2:
std::cout << '1';
std::cout << '2';
}
В случае 2 — Вы немного криво пишите.