Post/Pre-Increment 混乱
Post/Pre-Increment confusion
据我了解,如果我有一个变量 k = 5,并且我执行 ++k,则 k = 6 的新值。如果我执行 k++,该值将保持为 5,直到 k 第二次出现在程序,即当它更改为 6 时。例如:
k = 5;
System.out.println(k++); //prints 5, but now that k has appeared the second time, its value is incremented to 6
System.out.println(k); //prints 6
然而,在这段代码中:
class test {
public static void main(String args[]){
for(int i =0; i<10; i++){
System.out.println(i);
}
int x = 0;
x++;
System.out.println(x);
}
}
输出:
0
1
2
3
4
5
6
7
8
9
1
在循环中,虽然变量i出现了第2次(in System.out.println(i)),它的值仍然为0。但是对于x,当它第二次出现时( in System.out.println(i)) =22=](x); ) 它的值递增。
为什么?我对 post 和预增量的工作方式感到困惑。
为了你的代码
for(int i =0; i<10; i++){
System.out.println(i);
}
首先将变量 i 初始化为 0,然后检查它是否满足条件 i < 10 并打印变量,最后将变量 i 递增。
这就是 for 循环的工作原理。
在您编写的第二段代码中,它递增变量 x,最后打印 x 的值。
据我了解,如果我有一个变量 k = 5,并且我执行 ++k,则 k = 6 的新值。如果我执行 k++,该值将保持为 5,直到 k 第二次出现在程序,即当它更改为 6 时。例如:
k = 5;
System.out.println(k++); //prints 5, but now that k has appeared the second time, its value is incremented to 6
System.out.println(k); //prints 6
然而,在这段代码中:
class test {
public static void main(String args[]){
for(int i =0; i<10; i++){
System.out.println(i);
}
int x = 0;
x++;
System.out.println(x);
}
}
输出:
0
1
2
3
4
5
6
7
8
9
1
在循环中,虽然变量i出现了第2次(in System.out.println(i)),它的值仍然为0。但是对于x,当它第二次出现时( in System.out.println(i)) =22=](x); ) 它的值递增。 为什么?我对 post 和预增量的工作方式感到困惑。
为了你的代码
for(int i =0; i<10; i++){
System.out.println(i);
}
首先将变量 i 初始化为 0,然后检查它是否满足条件 i < 10 并打印变量,最后将变量 i 递增。
这就是 for 循环的工作原理。
在您编写的第二段代码中,它递增变量 x,最后打印 x 的值。