public class test {
public static void main(String [] args){
int sum=3,a=4,b=6,c=8;
while(a<=b){
while(b!=c) {
sum=sum+b;
b++;
}
b=6;
a++;
}
System.out.println(sum);
}
}
我问了别人,给我的答案是sum=3+3*(6+7)=42 。。我知道42是对的,但不知他这样写计算过程对不对,我不理解它的写法,,3*(6+7)是什么意思,怎么来的,,请高手解答一下,我刚开始学JAVA。。另外像这样两个while是在条件满足的情况下同时执行还是先执行里面的那个啊,,,我删掉外面的while,只留里面的执行结果是16,,加外面while这个16是怎么变成42了啊
public static void main(String [] args){
int sum=3,a=4,b=6,c=8;
while(a<=b){
while(b!=c) {
sum=sum+b;
b++;
}
b=6;
a++;
}
System.out.println(sum);
}
}
我问了别人,给我的答案是sum=3+3*(6+7)=42 。。我知道42是对的,但不知他这样写计算过程对不对,我不理解它的写法,,3*(6+7)是什么意思,怎么来的,,请高手解答一下,我刚开始学JAVA。。另外像这样两个while是在条件满足的情况下同时执行还是先执行里面的那个啊,,,我删掉外面的while,只留里面的执行结果是16,,加外面while这个16是怎么变成42了啊
sum原值就是3,所以就有3+3*(6+7)里面的while是外面while循环体的一部分,先执行外面while,记住:while的循环体就是while后{}中的内容
执行顺序是:第一次4<6,然后执行内嵌的while,使得sum=3+6+7,b=7,内嵌while执行完退出循环,但是这时候外面的while的循环体还没有执行完,
接着执行b=6,a++,使得a=5
然后外面while第二次循环5<6,依次类推删掉外面的,里面的while就是循环2次,分别在sum原值上+6和+7(+7是因为b++),所以得16
public static void main(String[] args){
int sum = 3, a = 4, b = 6, c = 8;
while(a <= b){ //<---控制3次循环的条件
while(b != c){
sum = sum + b; //<---sum + 6 + 7
b++;
}
b = 6;
a++; //<---控制3次循环的关键
}
System.out.println(sum);
}
}第一次循环sum的值是16;第二次循环sum的值是29;第三次循环sum的值是42。