我可以编译此代码而不会遇到任何错误。我认为应该有一个错误,因为switch语句中有assadfsd
。
为什么编译失败?
#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;
}
答案 0 :(得分:7)
答案 1 :(得分: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;
}