for循环如何完全解决
这是一个非常简单的for循环:
for(int i=0;i<=100;i++) { System.out.println(i); }
我知道它主要是如何工作的,但是我不明白i++
最终是如何工作的:它应该加1,如果我是正确的,但是当它打印出i
,它打印出0然后是1。
为什么它不是因为i++
而刚开始? 为什么它仍然只打印原始值而不是i++
值?
for
循环的工作原理如下:
- 初始化完成(在您的情况下
int i=0
;仅执行一次) - 检查条件(此处
i<=100
),如果条件为假则离开循环 - 执行大括号内的代码(
System.out.println(i);
在您的情况下) - 执行更新语句(
i++
) - 转到2。
这与循环类似:
{ int i = 0; while (i <= 100) { System.out.println(i); i++; } }
i
仅在每次迭代结束时递增。
因为在第一次执行循环体之后计算增量。 这是设计,并记住程序员通常将0
视为第一个数字。 例如,对于数组和String,第一个元素是0。
The Statement上的Java教程说,
for
语句提供了一种迭代一系列值的简洁方法。 程序员经常将其称为“for循环”,因为它反复循环直到满足特定条件的方式。 for语句的一般forms可表示如下:for (initialization; termination; increment) { statement(s) }
使用此版本的for语句时,请记住:
初始化表达式初始化循环; 循环开始时,它执行一次。 当终止表达式的计算结果为false时,循环终止。 每次迭代循环后调用increment表达式; 这个表达式增加或减少一个值是完全可以接受的。
这是它的工作原理
for语句用于重复用大括号括起来的语句块。 增量计数器通常用于递增和终止循环。 for语句对于任何重复操作都很有用,并且通常与数组结合使用以对数据/引脚集合进行操作。
for循环标题有三个部分:
for( initialization
; condition
; increment / decrement
){
//statement(s);
}
初始化首先发生,恰好一次。 每次循环,都会测试条件; 如果确实如此,则执行语句块和增量,然后再次测试条件。 当条件变为假时,循环结束。
致谢: 为
如果你使用++运算符作为前缀,如:++ 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
在前缀forms中,增量或减量发生在表达式求值中使用值之前,因此表达式的值不同于操作数的值。 在后缀forms中,增量或减量发生在表达式求值中使用该值之后,因此表达式的值与操作数的值相同。
将i ++看作是“使用然后增量”的语句
i的值首先在循环中使用,然后递增1.因此循环执行一次,然后检查声明和增量语句。