双重for循环结果问题

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