一个简单的Java问题

来源:百度知道 编辑:UC知道 时间:2024/07/08 12:21:18
public class Kehouzuoye5{
public static void main(String[] args) {
int sum=0,i;
for(i=1;i<=1;i++){
switch(i){
case 1:
sum=sum+2;
case 2:
sum=sum+4;
continue;
case 3:
sum=sum+16;
break;
}
}
System.out.println(sum);
}

}
运行结果是6
为什么不是22呢,有人能解释一下吗?
我不太明白这个程序的运行顺序。

回去看看continue和break的区别!
你这个程序只运行了1次.
case 1:
sum=sum+2;
case 2:
sum=sum+4;
continue; (continue表示跳出本次循环进行下一次循环.)
而你程序只运行了1次.就走不到
case 3:
sum=sum+16;
另外break是跳出整个循环.回去多看看书!

先运行sum=sum+2;
由于没有break;
所以相当于顺序执行,
即sum=sum+4;
然后continue时,就进行for的下一次循环,
但因为i已经大于1,所以结束

break 是终止循环,而continute是终止本次循环直接进行下一次循环
程序运行到case 2下面时遇到continute然后执行i++,i=2就退出循环了
case 1:
sum=sum+2;
case 2:
sum=sum+4;
continue;

首先 i =1; 运行 sum=sum+2; sun=2;
因为没由break;
接下来 运行 sum=sum+4; sum=6;
接下来 continue; i++; i=2
2>1 跳出循环
sum = 6

for(i=1;i<=1;i++)你这里的说明就是i=1,2了!
那么程序只会执行 case1;sum=sum+2; case2:sum=sum+4;
要想结果为22
for(i=1;i<=3;i++){
.
.
case 1:
sum=sum+2;
contiue;
其他代码和你一样。
编译通过!

结果是正确的。因为case1后面没有结束标志,所以会case2语句,这时的sum=6,然后执行到continue时跳出本次循环到for循环,而此时的i>1,所以结果为6.