本人初学,请高手指教
int i=2;
switch (i){
case 1:System.out.println(i);break;
case 2:System.out.println(i);
case 3:System.out.println(i);
case 4:System.out.println(i);
default:System.out.println(i);
}
到case2时已经找到匹配的了,已经不匹配case3了,为什么还是执行了case3的打印语句呢,加break就不会执行了,可是明明不匹配case3,为什么还会执行呢?后面的也是,直到break语句。
int i=2;
switch (i){
default:System.out.println(i);
case 1:System.out.println(i);
case 2:System.out.println(i);
case 3:System.out.println(i);
case 4:System.out.println(i);
}
还有这段把default放在前面,上来就会执行它,是吗,然后case1也执行了,到case2执行完。
请大家帮忙分析一下,谢谢!
int i=2;
switch (i){
case 1:System.out.println(i);break;
case 2:System.out.println(i);
case 3:System.out.println(i);
case 4:System.out.println(i);
default:System.out.println(i);
}
到case2时已经找到匹配的了,已经不匹配case3了,为什么还是执行了case3的打印语句呢,加break就不会执行了,可是明明不匹配case3,为什么还会执行呢?后面的也是,直到break语句。
int i=2;
switch (i){
default:System.out.println(i);
case 1:System.out.println(i);
case 2:System.out.println(i);
case 3:System.out.println(i);
case 4:System.out.println(i);
}
还有这段把default放在前面,上来就会执行它,是吗,然后case1也执行了,到case2执行完。
请大家帮忙分析一下,谢谢!
第一个程序就是从2开始到default;
第二个程序,并没有从default开始,因为它找到case很合适,就从那里开始了。所以default没有执行
把你的程序改成这样,你看看就知道了:
int i=2;
switch (i){
default:System.out.println(i);
case 1:System.out.println(i);
case 6:System.out.println(i);//让它找不到2!!
case 3:System.out.println(i);
case 4:System.out.println(i);
}结果是程序从default开始了
int i=10;
switch (i){
case 1:System.out.println(i);break;
case 2:System.out.println(i);break;
case 3:System.out.println(i);break;
case 4:System.out.println(i);break;
default:System.out.println("sorry");这样你I为10找不到匹配的后就执行default里的语句
这样你把default放到那里都一样只有找不到任何匹配才执行他
int i=10;
switch (i){
default:System.out.println(i);
case 1:System.out.println(i);
case 2:System.out.println(i);
case 3:System.out.println(i);
case 4:System.out.println(i);
没加break并且也没有一个匹配的default又放在最前面执行结果就是default里的代码和后面那几个case里的全部输出