我有一个以下代码(取自C书):
#include<stdio.h>
int main( )
{
int k=4,j=0;
switch(k)
{
case 3:
j=300;
case 4:
j=400;
case 5:
j=500;
}
printf("%d",j);
}
Run Code Online (Sandbox Code Playgroud)
当我运行上面的代码时,我得到输出500,但我预计它是400,任何人都可以为什么打印500而不是400?
(我是C的新手,我无法弄清楚它中的错误!)
您需要break;在案例块的末尾.
#include <stdio.h>
int main()
{
int k = 4, j = 0;
switch(k)
{
case 3:
j = 300;
break;
case 4:
j = 400;
break;
case 5:
j=500;
break;
}
printf("%d\n", j);
}
Run Code Online (Sandbox Code Playgroud)
你需要打破你的情况,否则它将通过其他情况运行:
int main( )
{
int k=4,j=0;
switch(k)
{
case 3:
j=300;
break;
case 4:
j=400;
break;
case 5:
j=500;
break;
}
printf("%d",j);
}
Run Code Online (Sandbox Code Playgroud)
所以在你的情况下它确实执行j=400然后去case 5:并执行j=500