我想知道为什么这段代码给出输出112
最后一位数字2
如何创建?Java中的前后缀“++”运算符的语义
public static void main(String[] args) {
int i = 0;
System.out.print(++i);
System.out.print(i++);
System.out.print(i);
为什么会发生这种情况?
我想知道为什么这段代码给出输出112
最后一位数字2
如何创建?Java中的前后缀“++”运算符的语义
public static void main(String[] args) {
int i = 0;
System.out.print(++i);
System.out.print(i++);
System.out.print(i);
为什么会发生这种情况?
您的片段它译为
int i = 0;
i = i + 1; // 1
System.out.print(i); // 1
System.out.print(i); // 1
i = i + 1; // 2
System.out.print(i); // 2
这就是为什么最后的结果是一个2
++i
它是由印刷方法被调用之前递增变量和i++
这是incrementin g执行方法后的变量。
i++
是增量后运算符,它的表达式值为旧值i
,但是增加i
的副作用。值为1
,但它将i
更改为2
。
i是初始为0,那么它是预加和印刷让你有第一1,然后将其再次印刷和你有第二1,则后加一,然后打印的最后时刻,你必须2
您在i
应用两个增量。的初始值是0,因此两个增量(++i
和i++
)后它将成为2.
两个i++
和++i
通过一个递增的i
值。
它们类似于
i = i+1;
但++i
一个递增的i
值然后使用它,所以0
变得1
并打印出来,同时i++
首先使用的值,然后递增的i
值,所以打印值为1
然后它变成2
,因此最后一个数字(最终值为i
)为2.
简单地;
在后递增,变量被读取后增量完成。
在预增量,变量值首先递增,然后在表达式中使用。
当我们在使用后或预增操作符它增加了价值。
后增量运算符(i++
)第一分配值,然后递增它。预增量运算符(++i
)先递增,然后赋值。 他们都这样的表现:
int i=0;
i=i++;
System.out.println(i); //1
i=++i;
System.ou.println(i); //1
运行此代码时:
public static void main(String[] args) {
int i = 0; //i=0;
System.out.print(++i); // increments i to i=1, and prints i
System.out.print(i++); // prints i and then increments it to i=2
System.out.print(i); // prints i, i.e. 2
}
这没有什么关系的迭代。 – Cairnarvon 2013-05-12 09:58:23
'++ i'表示增量并读取'i','i ++'表示读取和增加'i','i'表示读取'i'。 – 2013-05-12 10:02:14
作为一般规则;从不这样做,它会导致不可读的代码,增加并单独使用一个值 – 2013-05-12 10:35:55