C语言switch语句总会默认执行一次default,即使前面case符合也会执行,而且不符合会执行两次怎么办

2024-11-22 18:44:10
推荐回答(4个)
回答1:

switch (表达式或属性){

case 值1 : 语句1

break;

case 值2 : 语句2

break;

...

default : 值n

break;

}

从表达式或属性值等于某个case语句后的值开始,它下方的所有语句都会一直运行,直到遇到一个break为止。随后,switch语句将结束,程序从switch结束大括号之后的第一个语句继续执行,并忽略其他case。
假如任何一个case语句的值都不等于表达式或属性的值,就运行可选标签default之下的语句。
假如表达式或属性的值和任何一个case标签都不匹配,同时没有发现一个default标签,程序会跳过整个switch语句,从它的结束大括号之后的第一个语句继续执行。

回答2:

在switch语句之前加一句fflush(stdin);,即可。

回答3:

scanf();后面加个getchar();

回答4:

case与值要有空格分隔开。