Java 与for循环的输出混淆

Java 与for循环的输出混淆,java,for-loop,Java,For Loop,我必须从一本练习册中找到这段代码,其中有两个foor循环和一个if语句,我无法理解它的输出!所以我猜我不明白for循环是如何工作得那么好的 class Multifor { public static void main(String[] args) { for (int x = 0; x < 4; x++) { for (int y = 4; y > 2; y--) { System.out.pr

我必须从一本练习册中找到这段代码,其中有两个foor循环和一个if语句,我无法理解它的输出!所以我猜我不明白for循环是如何工作得那么好的

class Multifor {

    public static void main(String[] args) {

        for (int x = 0; x < 4; x++) {

            for (int y = 4; y > 2; y--) {
                System.out.println(x + " " + y);
            }
            if (x == 1) {
                x++;
            }
        }
    }
}
第一个问题:如果在for循环中,每次代码运行到循环中,x都会增加1,那么当代码到达代码的System.out.println部分时,x的输出为什么是0的两倍?如果x==1,那么在if语句中增加1;这将使第二个输出为x2

第二个问题:如果y=4,并且每次for循环运行时它都递减1,那么输出如何先减3,然后再减4??如果我看不到y变量的任何增量,那么是这样吗

第一个问题:如果在for循环中,为什么x的输出是0的两倍 每次代码运行到循环中时,它都会按 代码到达System.out.println部分的时间 alredy 1,如果x==1,加上if语句中1的增量; 这将使第二个输出为x2

每次输入主
x
循环时,内部循环
y
循环两次

此外,当您第一次进入循环时,
x
的值是您在
中为
声明指定的值

这就是为什么
x
的值在两次打印中只更改一次

第二个问题:如果y=4,并且每次 循环运行如何输出前3个和后4个??如果我不这样做的话,也会如此 看到y变量的增量了吗

y
的输出是4,然后是3

0 4
0 3
1 4
1 3
3 4
3 3
第一个问题:如果在for循环中,为什么x的输出是0的两倍 每次代码运行到循环中时,它都会按 代码到达System.out.println部分的时间 alredy 1,如果x==1,加上if语句中1的增量; 这将使第二个输出为x2

每次输入主
x
循环时,内部循环
y
循环两次

此外,当您第一次进入循环时,
x
的值是您在
中为
声明指定的值

这就是为什么
x
的值在两次打印中只更改一次

第二个问题:如果y=4,并且每次 循环运行如何输出前3个和后4个??如果我不这样做的话,也会如此 看到y变量的增量了吗

y
的输出是4,然后是3

0 4
0 3
1 4
1 3
3 4
3 3

对于x的每个值,y的内部循环将运行两次。 首先,当y=4,然后y=3,当y变为2时,条件变为假(y!>2),因此它会出现内部循环,然后它会检查“如果条件”,即x是否等于1。如果x等于1,则x的值将增加到2。 这将继续,直到外部循环中的条件为真。 因此,输出将如下所示:

当x=0 y=4,3时
当x=1 y=4,3时
当x=3 y=4,3时

输出顺序为:
0 4 0 3 1 4 1 3 3 3

对于x的每个值,y的内部循环将运行两次。 首先,当y=4,然后y=3,当y变为2时,条件变为假(y!>2),因此它会出现内部循环,然后它会检查“如果条件”,即x是否等于1。如果x等于1,则x的值将增加到2。 这将继续,直到外部循环中的条件为真。 因此,输出将如下所示:

当x=0 y=4,3时
当x=1 y=4,3时
当x=3 y=4,3时

输出顺序为:
0 4 0 3 1 4 1 3 3 4 3

拿一支铅笔和一张纸,或者在调试器中运行它,然后逐行跟随它。这里没有什么太复杂的事情,所以手动操作不应该是个问题,再加上你会回答你自己的问题。拿一支铅笔和一张纸,或者通过调试器运行它,然后一行一行地跟随它。这里没有什么太复杂的事情,所以手动操作不应该是一个问题,然后你将回答你自己的问题。是的,你的权利从4开始,但是y值如何从3再次增加到4?当你返回循环时,y的值会返回到4,因为“int y=4”。。。如果我的回答对你有帮助,不要犹豫,验证一下:)是的,我现在明白了,非常感谢,你帮了大忙!是的,你的右边是从4开始的,但是y值是如何从3变回4的呢?当你回到循环时,y的值会变回4,因为“int y=4”。。。如果我的回答对你有帮助,不要犹豫,验证一下:)是的,我现在明白了,非常感谢,你帮了大忙!