【问题标题】:Nested for loops. Why does inner variable value reset?嵌套 for 循环。为什么内部变量值会重置?
【发布时间】:2015-10-10 14:50:58
【问题描述】:

我们一直在学习 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?每次......有人可以解释这是为什么吗?

【问题讨论】:

    标签: java loops for-loop nested


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      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。

      【讨论】:

        【解决方案3】:

        每次代码执行包含:

        的行
        int count=6
        

        count 变量回到 6。

        正如你所说,第一个循环执行了 10 次,所以 count 将被重置为第一个循环执行的次数。

        【讨论】:

        • 是吗?所以它应该对for (int count=6; count &lt; 18; count++){做同样的事情
        • 当然,当我们在嵌套循环中循环时,我们在主循环中保持在同一循环中......
        猜你喜欢
        • 2017-06-21
        • 2016-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        • 1970-01-01
        • 2018-12-25
        • 2017-09-20
        相关资源
        最近更新 更多