public class Demo{
public static void main(String []args){
int i = 0, j = 5;
tp: for (;;){
i++;
for(;;){
if(i > j--)
break tp;
}
}
System.out.println("i = " + i + ", j = "+ j); //i=1,j=-1;
}
}
为啥结果是这两个啊?求解
首先这是个双重for循环
内外都是死循环
外层先将i++之后,i变成1,进入内层
一直到j变成0,满足i>j--的条件,此时j继续执行--操作,变成-1,执行break tp跳出两层循环
j--先取值后--这个你知道的吧
外层循环i++之后i为1,然后内层 if(i > j--) break tp; 当j为0的时候才满足if 条件,也就是 if(1> 0--)成立,跳出循环,最终结果就是i是1,j--也就是0--之后-1