【问题标题】:How does the for loop exactly work out [closed]for循环是如何工作的[关闭]
【发布时间】:2014-08-17 02:16:14
【问题描述】:

这是一个非常简单的for循环:

for(int i=0;i<=100;i++)
{
    System.out.println(i);
}

我知道它主要是如何工作的,但我不明白 i++ 最后是如何工作的:如果我是正确的,它应该加 1,但是当它打印出 i 时,它会打印输出 0,然后输出 1。

由于i++,它为什么不以 1 开头?为什么它仍然只打印出原始值而不是 i++ 值?

【问题讨论】:

  • for循环总是从你初始化的值开始(int i=0;)然后检查条件(i然后进入循环-->执行available statements-->then 增加 variable(i++;) 的值,然后重复前面的步骤。

标签: java for-loop


【解决方案1】:

for 循环的工作方式如下:

  1. 初始化完成(在您的情况下为int i=0;只执行一次)
  2. 检查条件(此处为i&lt;=100),如果条件为假,则退出循环
  3. 执行大括号内的代码(在您的情况下为System.out.println(i);
  4. 更新语句已执行 (i++)
  5. 转到 2。

【讨论】:

    【解决方案2】:

    类似于这个while循环:

    {
        int i = 0;
        while (i <= 100) {
            System.out.println(i);
            i++;
        }
    }
    

    i 仅在每次迭代结束时递增。

    【讨论】:

    • (注意事项:除了i 被绑定到循环范围之外。continue 在两个循环中的效果不同;它会跳过while 中的i++案例。)
    • @cdhowie 说得好。
    【解决方案3】:

    因为在第一次执行循环体之后计算增量。这是设计使然,请记住,程序员通常将0 视为第一个数字。例如,对于数组和字符串,第一个元素是 0。

    The for Statement 上的 Java 教程说,

    for 语句提供了一种迭代一系列值的紧凑方法。程序员经常将其称为“for 循环”,因为它反复循环直到满足特定条件。 for语句的一般形式可以表示为:

    for (initialization; termination; increment) {
      statement(s)
    }
    

    使用此版本的 for 语句时,请记住:

    初始化表达式初始化循环;它在循环开始时执行一次。 当终止表达式的计算结果为 false 时,循环终止。 每次循环迭代后都会调用增量表达式;这个表达式增加或减少一个值是完全可以接受的。

    【讨论】:

      【解决方案4】:

      这就是它的工作原理

      for 语句用于重复用大括号括起来的语句块。递增计数器通常用于递增和终止循环。 for 语句对于任何重复操作都很有用,并且经常与数组结合使用来对数据/引脚的集合进行操作。

      for循环头分为三部分:

      对于(initializationconditionincrement / decrement){

      //statement(s);

      }

      初始化首先发生并且恰好一次。每次通过循环,都会测试条件;如果为真,则语句块,并执行增量,然后再次测试条件。当条件变为假时,循环结束。

      致谢:For

      【讨论】:

        【解决方案5】:

        如果您使用 ++ 运算符作为前缀,例如:++var;然后,操作数的值增加 1 然后,只返回它,但是,如果你使用 ++ 作为后缀,如: var++;然后先返回操作数的值,然后只增加1。

        例如,

        class Example
        {
            public static void main(String[] args)
            {
                int var = 1;    
                System.out.println(var++);
                System.out.println("\n" + ++var);    
            }
        }
        

        以下程序打印

        1
        3
        

        在前缀形式中,递增或递减发生在表达式求值中使用值之前,因此表达式的值与操作数的值不同。在后缀形式中,递增或递减发生在表达式求值后使用值,因此表达式的值与操作数的值相同。

        【讨论】:

        • 这不能回答问题。问题是关于 for 循环,而不是关于增量运算符本身。
        【解决方案6】:

        i++ 视为“使用然后递增”的语句
        i 的值将首先在循环中使用,然后加 1。 所以循环执行一次,然后检查声明和增量语句。

        【讨论】:

        • 这不能回答问题。问题是关于 for 循环,而不是关于增量运算符本身。
        • @MarkRotteveel 他的疑问是关于增量声明。
        猜你喜欢
        • 1970-01-01
        • 2016-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-28
        • 2019-01-21
        • 2022-01-03
        相关资源
        最近更新 更多