Java 与for循环的输出混淆
我必须从一本练习册中找到这段代码,其中有两个foor循环和一个if语句,我无法理解它的输出!所以我猜我不明白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
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”。。。如果我的回答对你有帮助,不要犹豫,验证一下:)是的,我现在明白了,非常感谢,你帮了大忙!