我必须使用带有2个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++;
}
}
}
}
输出是:
0 4,
0 3,
1 4,
1 3,
3 4,
3 3,
第一个问题:如果在for循环中,每次代码进入循环时,在代码到达System.out.println部分的代码时,x的输出结果为0,如果在for循环中它增加1它是alredy 1,如果x == 1,则在if语句中加1;这将使x 2的第二个输出。
第二个问题:如果y = 4并且每次for循环运行它减1,那么输出首先是3然后是4?如果我没有看到y变量的任何增量,那么等等?
答案 0 :(得分:4)
第一个问题:如果在for循环中,x的输出结果为0 每次代码进入循环时,它都会增加1 代码到达代码的System.out.println部分的时间 alredy 1,如果x == 1,则在if语句中加1; 这将使x 2的第二个输出。
每次进入主x
循环时,内循环y
都会循环两次。
此外,当您第一次输入循环时,x
的值是您在for
声明中指定的值。
这就是x
的值仅在两次打印中改变一次的原因。
第二个问题:如果y = 4,则每次减去1 循环运行如何输出前3然后4?如果我不这样做,等等 看到y变量的任何增量?
y
的输出是4然后是3。
0 4
0 3
1 4
1 3
3 4
3 3
答案 1 :(得分:2)
对于x的每个值,y的内部循环将运行两次。 首先当y = 4然后y = 3,当y变为2时,条件变为假(y!> 2),因此它出现内循环然后它将检查x是否等于的“if condition” 1或不。如果x等于1,则x的值将增加到2。 这一直持续到外循环中的条件为True。 所以输出将是这样的:
when x=0 y=4,3
when x=1 y=4,3
when x=3 y=4,3
输出顺序为:
0 4 0 3 1 4 1 3 3 4 3 3