嵌套 for 循环。为什么内部变量值会重置?

Nested for loops. Why does inner variable value reset?

我们一直在学习 for 循环和嵌套 for 循环。

我的问题;

为什么内部for循环中的变量值在递增结束后会自行重置?但是在外部 for 循环中,变量保持其值。

例如:

public class Factorial {
    public static void main(String[] arguments){
    for(int i = 0; i <10; i++){
        for (int count=6; count < 18; count+=6){
            System.out.println (count);
            }
        } 
    }
}

在这种情况下,程序运行了 10 次,同时将 i 和 count 递增到 18,然后又回到 6?每次...有人可以解释这是为什么吗?

每次代码执行包含的行:

int count=6

计数变量回到 6。

正如您所说,第一个循环执行了 10 次,因此 count 将重置为第一个循环执行的次数。

循环计数器是局部变量,它们的范围只扩展到创建它们的结构。一旦你离开循环,它的计数器就不再存在。

6 在语句中重新初始化

for (int count=6; count < 18; count+=6){

但是如果你把初始化移到循环之前

int count = 6;
for (; count < 18; count+=6){

它会做同样的事情。

如果你把它移得更远

int count = 6;
for(int i = 0; i <10; i++){
    for (; count < 18; count+=6){
        System.out.println (count);
        }
    } 
}

然后内部循环不会执行迭代 i=1..9 因为计数已经是 18。