问题多多啊,看书都不行
public class TestSwitch{public static void main(String srgs[]){
int i=1;
switch(i){
default:System.out.println("a");
case 1:System.out.println("b");
case 2:
case 3:System.out.println("c");break;
case 4:System.out.println("d");}
i=0;
switch(i){
default:System.out.println("a");
case 1:System.out.println("b");
case 2:
case 3:System.out.println("c");break;
case 4:System.out.println("d");
}
}
}
switch从case往下执行.遇break退出..如无break.则从上到下..最后执行default.
这和i=1; i=o;有什么关系啊
搜索更多相关的解决方案:
看书
----------------解决方案--------------------------------------------------------
怎么解这类题目?
比如:
switch(m){
case 0:System.out.println("Condition 0");
case 1:System.out.println("Condition 1");
case 2:System.out.println("Condition 2");
case 3:System.out.println("Condition 3");break;
default:System.out.println("Other Condition");
}
当m的值取什么的时候输出"Condition 2"?
答案是0 1 2 怎么算的,看不明白
----------------解决方案--------------------------------------------------------
程序代码:
public class Test{
public static void main(String [] args){
final int i = 1;
switch(i){
case 1:
System.out.println(\"1\");
case 2:
System.out.println(\"2\");
break;
case 3:
System.out.println(\"3\");
default:
System.out.println(\"4\");
}
}
}
当i=1时将会打印1,2。
因为当符合条件进入case里面的代码后,只要不遇到break就会一直运行下面的代码,忽略下面的case。
----------------解决方案--------------------------------------------------------
为什么
当i=1时;
default:System.out.println("a");放在第一句不输出a
default:System.out.println("a");放在case 1后就能输出a
当i=0时
default:System.out.println("a");放在第一句就可以输出a
----------------解决方案--------------------------------------------------------
我重新写一个代码拜托你也分析了看一下吧……
以你的例子来说
当i=1时:
程序代码:
int i = 1;
switch(i){
default:System.out.println(\"a\");
case 1:System.out.println(\"b\"); //代码从这里开始执行,怎么可能会输出上面的a?放在下面当然能正常输出
case 2:
case 3:System.out.println(\"c\");break;
case 4:System.out.println(\"d\");}
当i=0时:
程序代码:
i=0;
switch(i){
default:System.out.println(\"a\"); //由于0不属于1~4范围内,所以从这里开始执行,也就会输出a了
case 1:System.out.println(\"b\");
case 2:
case 3:System.out.println(\"c\");break;
case 4:System.out.println(\"d\");
}
btw:一般没有人会把default放在第一句的……
----------------解决方案--------------------------------------------------------
//由于0不属于1~4范围内,所以从这里开始执行,也就会输出a了
原来是这个啊,
是值的问题
----------------解决方案--------------------------------------------------------
这个代码本来就是匹配值的操作……
意思就是如果值在case里能得到匹配就执行case里的代码,否则就执行default的代码,default是在无法得到匹配的情况下才执行的,所以不会写到第一行……
----------------解决方案--------------------------------------------------------