3

可能重复:
切换条件下的默认情况

我可以编译这段代码而不会遇到任何错误。我认为应该有一个错误,因为assadfsd在 switch 语句中。

为什么编译不会失败?

#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 标准允许的。所以你的编译器应该编译代码没有错误。

例如,您可以使用该标签 usinggoto语句。

#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 回答