求大佬解释一下这个怎么算的!!!!

public class Qiu {
    public static void main (string []args) {
    int j=0;
    for (int i=3;i>0;i--){
    j+=i;
   int x=2;
   while(x<j){
   x+=1;
 System.out.print(x)

输出结果为33453456;第二个3怎么算出来的,这个for循环和while循环嵌套有什么注意的,我只算出了第一个3,后面的就不知道怎么来的,求大佬解释!!

第一次:j = 3,i = 3,x = 2; x < j = true x = 2 + 1  -->  x < j = flase  i--

第二次:j = 5,i = 2,x = 2; x < j = true x = 2 + 1 = 3  -->  x < j = true  x =3 + 1 =  4  -->  x < j = flase  i--

......

你要先理解。for(A;B;C)中,先判断条件B是否满足,满足的话执行for循环,然后将C中的变量改变,在判断条件是否满足,以此循环。

而while不一样,while(A)是先判断表达式A是否满足,满足就执行while循环,然后在判断条件是否满足。你这个能理解了,上面的结果就很容易了。

第一次:i=3;j=3;x=2; 2<3; 打印 2+1=3

第二次:i=2;j=3+2=5;x=2;2<5;打印 2+1=3;3+1=4;4+1=5; 5不大于5

第三次:i=1;j=5+1=6;x=2;2<6;打印 2+1=3;3+1=4;4+1=5;5+1=6; 6不大于6

第四次:i=0不大于0,退出,所以打印 33453456