Информация об изменениях

Сообщение Re[7]: семантика switch/case от 16.12.2015 12:01

Изменено 16.12.2015 12:02 xobotik

Здравствуйте, _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:
td::cout << '1';
std::cout << '2';
}
[/ccode]
В случае 2 — Вы немного криво пишите.
Здравствуйте, _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: 
         td::cout << '1';
        std::cout << '2';
}

В случае 2 — Вы немного криво пишите.