switch(value) { case * : .....; break; case * : .....; break; ... default : ...; }
case后面要加break 否则会顺序执行下去
代码: public class Fallthrough { public static void main(String[] args) { int x = 2; int y = 3; // int x = 2,y=3; switch(x) { case 3: y++; break; case 4: y++; break; default: y++; break; }
我从新说一下这个问题,这是一道程序题:int x = 2,y=3; switch(x) { default: y++; case 3: y++; case 4: y++; } System.out.println("y="+y); 这样y=6而这样 int x = 2,y=3; switch(x) { case 3: y++; case 4: y++; } System.out.println("y="+y);y=3 为什么前一个每个case都执行,而下一次一个也不执行,不都没有break吗,为什么强者执行而后者不执行
switch(value) {
case * : .....; break;
case * : .....; break;
...
default : ...;
}
否则会顺序执行下去
public class Fallthrough {
public static void main(String[] args) {
int x = 2;
int y = 3;
// int x = 2,y=3; switch(x)
{
case 3:
y++;
break;
case 4:
y++;
break;
default:
y++;
break;
}
System.out.println(y);
}
}
执行结果:
4
但是x!=2呀,为什么要执行case3和case4
{
default:
y++;
case 3:
y++;
case 4:
y++;
}
System.out.println("y="+y);
这样y=6而这样
int x = 2,y=3; switch(x)
{
case 3:
y++;
case 4:
y++;
} System.out.println("y="+y);y=3
为什么前一个每个case都执行,而下一次一个也不执行,不都没有break吗,为什么强者执行而后者不执行
一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break至于7楼的程序,匹配default也是匹配
一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break至于7楼的程序,匹配default也是匹配所噶,谢谢了,就是这个意思