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

时间:2015-10-10 14:50:59

标签: java loops for-loop nested

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

我的问题;

为什么一旦增量结束,内部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并计数增量为18,但后来又回到6?每一次......有人可以解释为什么会这样吗?

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

每次代码执行包含以下内容的行:

int count=6

count变量返回到6。

正如你所说,第一个循环执行10次,因此计数将重置第一个循环执行的次数。

答案 2 :(得分:1)

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因为count已经是18。