Java 关于for循环的困惑

Java 关于for循环的困惑,java,for-loop,Java,For Loop,它们都是for循环,但为什么输出不同呢?可能是因为 for(int i=0;i<10;) { i++; System.out.println(i); } for(int i=0;iIn: 请注意,i++发生在println()之后,而不是之前。输出不同,因为for循环的迭代步骤(第三个字段)发生在代码执行之后 这是与第一个for循环等效的语句: int i = 0; while (i < 10) { System.out.println(i); i

它们都是for循环,但为什么输出不同呢?

可能是因为

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


请注意,
i++
发生在
println()
之后,而不是之前。

输出不同,因为for循环的迭代步骤(第三个字段)发生在代码执行之后

这是与第一个for循环等效的语句:

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

for(int i=0;ifor循环的外观如下所示:

for(int i=0;i<10;) { 
    System.out.println(i);
    i++;
}
for (initializer; condition; increment)
    statements;
它是这样执行的:

for(int i=0;i<10;) { 
    System.out.println(i);
    i++;
}
for (initializer; condition; increment)
    statements;

因此,增量只有在执行
语句之后才会发生。

在第一个语句中,i++在循环结束时执行。也就是在循环块完成之后。这就像编译器将i++添加到循环体的结尾。因此,最初i的值为0,并在循环结束时递增。在第二种情况下,i是递增的在循环开始时手动将其禁用在代码中从1开始的原因是,您告诉它在使用之前先递增:
系统输出打印项次(一)

第一个
for
参数是一个初始化;它在整个操作之前计算一次。第二个参数是一个条件。它在每一个周期之前执行,只有当它为真时循环才会继续。第三个
for
参数是迭代,它在每个周期之后计算,包括最后一个周期

最后一条规则可以将循环放入链中。您应该从
for
中删除
int
定义,然后在外部某处定义循环变量


将下面的两个答案组合起来,你会得到正确的答案:)
它们都是for循环,但为什么输出不同?
因为它们不是同一件事。如果你在调试器中逐步检查代码,你会确切地看到每一行的作用。
for(int i=0;i<10;) { 
    System.out.println(i);
    i++;
}
for (initializer; condition; increment)
    statements;
initializer;
while (condition)
{
   statements
   increment
}