与for循环

时间:2015-09-19 11:58:04

标签: java for-loop

我必须使用带有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变量的任何增量,那么等等?

2 个答案:

答案 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