Java 以下嵌套for循环的说明
我需要对以下嵌套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
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循环来确定我将运行每个操作的次数。非常感谢。