3

重複の可能性:
スイッチ条件のデフォルトのケース

エラーが発生することなく、このコードをコンパイルできます。assadfsdswitch ステートメントののため、エラーが発生するはずです。

コンパイルが失敗しないのはなぜですか?

#include <stdio.h>

int main(void)
{
    int choice =0;
    scanf("%d",&choice);

    switch(choice)
    {
        case 1 :
            printf("Case 1\n");
            break;                           
        assadfsd :
           printf("Error\n");                                 
    }  

    return 0;
}
4

2 に答える 2

7

ラベルといいます

例えば

 start:
     /*statements*/
于 2012-08-31T12:19:11.967 に答える
1

switchステートメントの構文は次のとおりです。

switch ( expression ) statement

したがって、「ステートメント」の代わりに、必要なステートメントを入れることができます。ここではラベルを使用しましたが、これは C 標準で許可されています。したがって、コンパイラはエラーなしでコードをコンパイルする必要があります。

たとえば、gotoステートメントを使用してこのラベルを使用できます。

#include <stdio.h>

int main(void)
{
    int choice = 1;
    goto assadfsd;

    switch (choice) {
    case 1:
        printf("Case 1\n");
        break;
    assadfsd:
        printf("Error\n");
    }

    return 0;
}
于 2012-08-31T12:20:08.440 に答える