⑴ java 中 i++和++i有什么区别
i++
和
++i
都是表达式,都会有一个返回值。
不同的地方在于,i++返回的是加一之前的值,而++i是返回加1后的值。
int
i
=
1;
int
b
=
i++;
此时执行后i为2,b为1.
int
i=1;
int
b=++i;
执行后i为2,b为2.
传言++i比i++速度更快
⑵ Java里面i++和++i到底有什么区别
1、赋值顺序不同
++ i 是先加后赋值;i ++ 是先赋值后加;++i和i++都是分两步完成的。
因为++i 是后面一步才赋值的,所以它能够当作一个变量进行级联赋值,++i = a =b,即 ++i 是一个左值;i++ 的后面一步是自增,不是左值。
形象的理解可以是i++先做别的事,再自己加1,++i先自己加1,再做别的事情。
2、效率不同
比如i=3,b=i++就是说b=3,完成之后让i变成4,b=++i就是先让i++变成4,然后b=4,其中++i比i++效率要高些。一般来说在循环域里面,这两者并没有什么很大的区别,但是要注意其生存周期,以及i值在程序流中的变化。
3、 i++ 不能作为左值,而++i 可以。
左值是对应内存中有确定存储地址的对象的表达式的值,而右值是所有不是左值的表达式的值。一般来说,左值是可以放到赋值符号左边的变量。
但能否被赋值不是区分左值与右值的依据。比如,C++的const左值是不可赋值的;而作为临时对象的右值可能允许被赋值。左值与右值的根本区别在于是否允许取地址&运算符获得对应的内存地址。
⑶ Java 中 i-- 和 --i 的实际应用
你这两段代码执行结果没有任何区别,--i和i--的区别我写个例子你看一下估计就明白了:
inti=10,a,b;
System.out.println("i="+i);
a=i--;
System.out.println("执行a=i--;//i="+i+",a="+a);
b=--i;
System.out.println("执行b=--i;//i="+i+",b="+b);
结果如下:
i=10
执行a=i--;//i=9,a=10
执行b=--i;//i=8,b=8
⑷ java中++i和i++的区别
无论在java还是在其他语言中,++i和i++的用法都是一样的,主要差别体现在直接使用中:
++i是先对i进行自增操作然后再进行运算,如
inti=10;
System.out.println(++i);//这时输出结果为11
i++是先进行运算然后再进行自增操作,如
inti=10;
System.out.println(i++);//这时输出的结果还是为10
当然在不是直接进行运算的用法当中输出的结果是一样的,如:
inti=10;
i++;
System.out.println(i);//结果为11
i=10;
++i;
System.out.println(i);//结果为11
⑸ Java中的++ i和 i++ 的区别
java中的++ i和 i++ 和c语言中是一样的
首先你要明确以一点是不管是 ++i 还是 i++,最后结果对于i来说都是一样的,他的值都会加1。
eg:i=5;这两个动作完成后i的值都变成6。
其次 对于他赋值给的那个变量就不一样了。
eg:i=5;
a = ++i,这句执行完后a = 6,当然i=6;
但是
a = i++,这句执行完后a = 5,i=6;
看了上面的例子应该明白结果了吧。
理解的话对于a = ++i你可以理解先执行+,再赋值。而对于a = i++,是先执行赋值再+。