Java for循环究竟是如何工作的

Java for循环究竟是如何工作的,java,for-loop,Java,For Loop,这是一个非常简单的for循环: for(int i=0;i<=100;i++) { System.out.println(i); } 我知道它主要是如何工作的,但我不明白I++最终是如何工作的:如果我是正确的,它应该加1,但当它打印出I时,它打印出0,然后是1 为什么它不从1开始,因为i++?为什么它仍然只打印原始值而不是i++值?它类似于这个while循环: i仅在每次迭代结束时递增。for循环的工作原理如下: for (initialization; termination;

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

for(int i=0;i<=100;i++)
{
    System.out.println(i);
}
我知道它主要是如何工作的,但我不明白I++最终是如何工作的:如果我是正确的,它应该加1,但当它打印出I时,它打印出0,然后是1

为什么它不从1开始,因为i++?为什么它仍然只打印原始值而不是i++值?

它类似于这个while循环:

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

for循环的工作原理如下:

for (initialization; termination; increment) {
  statement(s)
}
在您的情况下,初始化在i=0时完成;只执行一次
检查条件i,因为增量是在第一次执行循环体之后计算的。这是出于设计,请记住程序员通常将0视为第一个数字。例如,对于数组和字符串,第一个元素是0

上的Java教程说

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

for (initialization; termination; increment) {
  statement(s)
}
使用此版本的for语句时,请记住:

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


这就是它的工作原理

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

for循环标头包含三个部分:

用于初始化;条件增量/减量{

//声明

}

初始化首先发生,并且只发生一次。每次通过回路时,都要测试条件;如果为true,则执行语句块和增量,然后再次测试条件。当条件变为false时,循环结束


积分:

如果使用++运算符作为前缀,如:++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
在前缀形式中,增量或减量发生在值用于表达式求值之前,因此表达式的值与操作数的值不同。在后缀形式中,增量或减量发生在表达式求值中使用值之后,因此表达式的值与操作数的值相同。

将i++视为表示Use then increment的语句 i的值将首先在循环中使用,然后递增1。
因此循环执行一次,然后检查声明和增量语句

注意事项:除了我被绑定到循环的范围之外。continue在两个循环中不会有相同的效果;在while的情况下,它将跳过i++。@cdhowie这是一个很好的观点。for循环总是以您用int i=0初始化的值开始;然后检查条件,然后进入循环->执行可用语句->然后增加variablei++的值;然后重复前面的步骤。这并不能回答问题。问题是关于for循环,而不是增量运算符本身。@MarkRotterveel他怀疑的是增量语句。这并不能回答问题。问题在于for循环,而不是increment操作符本身。