Операторы if, else-if и else внутри «case» для оператора switch-case-break? - PullRequest
1 голос
/ 12 октября 2011

Я знаю синтаксис написания оператора case case, но мне интересно, разрешено ли это:

CODE:

    case 'p':
    {
    printf("Give number: ");
    scanf("%d, &int_1);
    if int_1=5;{
    printf("Played: you win");
    }
    break;
    }

В основном мне просто интересно, если эточто-то, что можно сделать, я знаю, что код неполон, но я не хочу, чтобы кто-то думал, что я пытаюсь получить конкретные ответы.Я просто ищу лучшего понимания применения условных выражений в моих программах.Спасибо.

РЕДАКТИРОВАТЬ: кроме тегов, я не указал, так что на случай, если это не ясно, это в C.

Ответы [ 2 ]

4 голосов
/ 12 октября 2011

Да, это разрешено. Но вы также забыли ( круглые скобки ) вокруг вашего if:

if int_1=5;{

должно быть:

if (int_1 == 5){

Так что, если он не компилировался, это причина.

3 голосов
/ 12 октября 2011

Короткий ответ - да, вы можете вкладывать if внутрь оператора swtich / case (или наоборот). Если вы хотите достаточно сильно, вы можете иметь цикл, содержащий switch, содержащий несколько if с и т. Д.

Итог: ограничение на вложение различных типов утверждений обычно определяется такими соображениями, как вкус и читаемость, а не ограничения, встроенные в язык.

...