阅读下列程序段,写出程序结束后变量sum的值。 public static void main(String[] args) { // TODO Auto-generated method stub int sum=0,i; for (i=1;i<=4;i++) { switch (i) { case 1: sum=sum+2; case 2: sum=sum+4; continue; case 3: sum=sum+16; break; }
} }
大哥大姐,要怎么理解啊,求详细解答,附注释。
------解决方案-------------------- int sum=0,i; //z这里就是 int sum =0 ;int i = 0;一个意思 for (i=1;i<=4;i++) {//for循环 switch (i) {//传入i比较 case 1://i是否等于1 sum=sum+2; case 2:// sum=sum+4; continue;//继续执行 case 3: sum=sum+16; break;//跳出for }
------解决方案-------------------- switch case穿透。查下就明白了
------解决方案-------------------- int sum=0,i; //z这里就是 int sum =0 ;int i = 0;一个意思 for (i=1;i<=4;i++) {//for循环 switch (i) {//传入i比较 case 1://i是否等于1 sum=sum+2; case 2:// sum=sum+4; continue;//继续执行 case 3: sum=sum+16; break;//跳出for }
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0,i;
for (i=1;i<=4;i++) {
switch (i) {
case 1:
sum=sum+2; //没有任何转移说明,则接续执行下面的语句
case 2:
sum=sum+4;
continue; //遇到这个就说明循环结构的下面代码就不执行了,直接执行i++,然后判断
case 3:
sum=sum+16;
break; //遇到这个就说明循环结构到头了,马上就要跳出循环了
}
}
}
------解决方案--------------------
------解决方案-------------------- int sum=0,i; //z这里就是 int sum =0 ;int i = 0;一个意思 for (i=1;i<=4;i++) {//for循环 switch (i) {//传入i比较 case 1://i是否等于1 sum=sum+2; case 2:// sum=sum+4; continue;//继续执行 case 3: sum=sum+16; break;//跳出for }
------解决方案-------------------- int sum=0,i; 与 int sum=0;int i=0; 不可同日而语。 前者i是没有初始化的,后面在使用前必须初始化,否则编译器报错。
public class sdafasd {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum = 0, i;
for (i = 1; i <= 4; i++) {
switch (i) {
case 1:
sum = sum + 2;
case 2:
sum = sum + 4;
continue;
case 3:
sum = sum + 16;
break;
}
System.out.println(i);
}
System.out.println(sum);
}
}