java 两个while的执行

public class Forloopstatement{
public static void main(String []atgs){
int i=3,j;
outer:while(i>0){
j=3;
inner:while(j>0){
if(j<2)break outer;
System.out.println(j+"and"+i);
j--;
}
i--;
}
}
}

两个while到底是怎么执行的,请高手详细说明下。
如果没有break,程序又怎么执行
j=3 到底是赋值?还是判断?

j=3是赋值哈。。。。

现在的执行结果应该是
3and3
2and3
先outer:while(i>0)此时,i=3,所以满足条件,往下执行
j=3;j的值为3
inner:while(j>0)满足条件,往下执行
if(j<2)break outer;不满足条件,j=3,不小于2,不执行break outer
System.out.println(j+"and"+i);j--;这两句被执行,打印出3and2
然后继续inner:while(j>0)
执行j的值变为1了。。执行if(j<2)break outer;外层循环终止了。。。

相当于外层循环只循环了一次

如果去掉break,执行结果应该是
3and3
2and3
1and3
3and2
2and2
1and2
3and1
2and1
1and1

也就是说,外层循环i从3到1,每一次外循环,内循环j从3到1

说的有点啰嗦。。。希望对你有点帮助。。。仍有问题可以继续追问或者HI我。。。追问

是不是当“执行j的值变为1了。。执行if(j<2)”满足。但是还是要输出1and3...再跳出内层循环,
再执行外层循环结尾的i--.再把i--的值2,带入到外层循环。一次循环?

追答

是不是当“执行j的值变为1了。。执行if(j<2)”满足之后执行break outer;
外层循环也终止了,不会再执行了。。。

追问

我是说当没berak outer的时候。
是不是像我说的那么执行!

追答

嗯。。。是哈。。。就是先判断外层循环条件,成功执行里面的代码,里面的内层循环执行完了,接着执行下面的代码。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-22
赋值
外面的循环循环了3,次,每次里面的循环运行3次,先是判断了 i>0(i=3);j=3后,进入里面的循环,判断j>0(j=3) 每次都j--;直到j=0的时候里面的循环结束了,到了i--(i变成了2);又开始了外面循环的判断i>0.............................................
相似回答