看case后面的break 如果没有,z则继续执行下一条语句,如果有break,则跳出switch
你认为的第三条是case 3;第四条是case::4
实际:
case 1 没有消息
第一条是case 2
第二条是case 3
第三条是case 4
【以下回答由 GPT 生成】
这个问题是由于C语言中的switch
语句的特性导致的。
在上述代码中,当choice=3
时,会按顺序执行case 3
和case 4
之后的所有代码。这是因为case 3
的代码块没有break
语句来终止switch
语句,所以会继续执行下一个case
的代码块。这意味着在这种情况下,会打印"Quiteright!"和"Goodshow!"两条消息。
而当choice=4
时,只会打印第三条消息"Goodshow!",这是因为case 4
的代码块没有被执行。由于在case 3
的代码块中没有break
语句,会导致程序继续执行下面的代码,即case 4
的代码块。所以在这种情况下,只会打印"Goodshow!"。
要解决这个问题,你可以在case 3
的代码块末尾添加break
语句,这样就可以终止switch
语句,避免执行后续的代码块:
switch(choice) {
case 1:
case 2:
printf("Darntootin'!\n");
break;
case 3:
printf("Quiteright!\n");
break;
case 4:
printf("Goodshow!\n");
break;
default:
printf("Have anice day.\n");
}
这样修改后,当choice=3
时,只会打印"Quiteright!",而不会执行后续的代码块;当choice=4
时,只会打印"Goodshow!",不会执行default
代码块。
【相关推荐】