Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以下嵌套for循环的说明_Java_For Loop - Fatal编程技术网

Java 以下嵌套for循环的说明

Java 以下嵌套for循环的说明,java,for-loop,Java,For Loop,我需要对以下嵌套for循环进行解释: public static void main(String[] args) { int x = 0; int y = 30; for (int outer = 0; outer < 3; outer++) { for (int inner = 4; inner > 1; inner--) { x = x + 3; // 3 y = y - 2; // 28

我需要对以下嵌套for循环进行解释:

public static void main(String[] args) {
    int x = 0;
    int y = 30;

    for (int outer = 0; outer < 3; outer++) {
        for (int inner = 4; inner > 1; inner--) {
            x = x + 3; // 3
            y = y - 2; // 28
            if (x == 6) {
                break;
            }
            x = x + 3; // 6
        }
        y = y - 2; // 26
    }

    System.out.println(x + " " + y);
}
publicstaticvoidmain(字符串[]args){
int x=0;
int y=30;
对于(int-outer=0;outer<3;outer++){
对于(int-inner=4;inner>1;inner--){
x=x+3;//3
y=y-2;//28
如果(x==6){
打破
}
x=x+3;//6
}
y=y-2;//26
}
System.out.println(x+“”+y);
}
输出是546,但我不知道这是什么答案。我自己也试过这样做,我发现'inner'的for循环会导致
4343432
。“外部”for循环导致
0 0 1 2 2

x和y如何在这方面发挥作用并获得这些值?非常感谢你

您可能会将循环索引(外部和内部)与x和y混淆,但它们是不同的变量

外部循环执行3次,内部循环执行9次(外部循环每次迭代执行3次)。 所以这两个都是完全执行的,因为永远不会输入可能破坏循环的if

x、 仅在内环中增加3倍,将达到(3+3)*9=54的值

y在内环中减少29倍,在外环中减少3倍,因此它将是30-(2*9)-(2*3)=6

循环样本

outer=0
 inner=4
   x=3
   Y=28
   x=6
 inner=3
   x=9
   y=26
   x=12
 inner=2
   x=15
   y=24
   x=18
 end of inner loop
 y=22
 outer=1
  inner=4
 ....
 and so on

x
y
是在循环的外部/之前定义的,这意味着它们会根据循环的迭代次数而改变……我已经知道了。但是它们到底是如何根据循环而改变的?您的语句
x=x+3;
y=y-2;
通过计算循环的结果来改变它们右侧,并将其分配给
=
左侧的变量。外部循环运行
3次(对于值
0,1,2
)。对于外部循环的每次迭代,内部循环也运行
3次(对于值
4,3,2
).你能准确指出什么是不清楚的吗?我理解这一部分,但我不知道应该用什么来代替x和y。谢谢你的帮助!我将循环索引与变量混合在一起。相反,我使用for循环来确定我将运行每个操作的次数。非常感谢。