1. 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左值是不可赋值的;而作为临时对象的右值可能允许被赋值。左值与右值的根本区别在于是否允许取地址&运算符获得对应的内存地址。
2. java中i; i+ ;+i ;i++ ;++i分别有什么不同
i是变量
i++ 是后自增,就是先用i再增1 【每次增1,下同】
++i 是前自增 就是先增1再用i
(同样的还有--i,i--)
至于i+,+i这个 还真没看到过···倒是看到过i+1,2+i这类的表达式啊
如:
int i = 5;//申明一个变量并赋值为5
System.out.println(i);//打印i,结果为5
System.out.println(i++);//后自增,所以这里输出5 然后在将i增1 使i=6
System.out.println(i);//输出6
System.out.println(++i);//前增,先自增再调用,所以输出7
3. 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
4. Java中i++和++i的区别和各自的意义详细点
因为i
=
i
++;
的执行顺序是
1.将=右边int
i
=
0的值赋给左边的i--->i
=
0
2.右边的i执行自加,但并没有把1值赋给左边的i(也就是说实际中虽然i的值为1,但并没有赋给内存中的i
所以system.out.println("i
=
"
+
i);
中的i的值并没有改变大小
3.如果你将i
=
i
++;
改成i
=
++i;
就是1
5. 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++,是先执行赋值再+。
6. 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++速度更快
7. java语言中i--和--i有什么区别
后置加加是先参与其余运算,然后自己加1,前置是反的
8. 在java中 i++和++i有什么区别
i++是先让i的值+1;然后在运算,++i是先运算;然后再让i的值+1.
以下列的Java代码为例:
{int i=0; int j=i++;}
{int i=0; int z=++i;}
运算过后,j=0;表明i++是指先把i赋值给j然后再自身加1;运算过后,z=1;表明++i是指先自身加1后赋值给z;总之++号在后面的意思是先赋值然后自身加1;++在前面的是先自身加1后赋值。
“++”是java单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量。自增运算符的作用是使变量的值增1。
放在操作元前面的自增运算符,会先将变量的值加1,然后再使该变量参与表达式的运算。放在操作元后面的自增运算符,会先使变量参与表达式的运算,然后再将该变量的值加1。
(8)java中i和i的区别扩展阅读
Java的其他运算符:
1、比较运算符
比较运算符属于二元运算符,用于程序中的变量之间,变量和自变量之间以及其他类型的信息之间的比较。比较运算符的运算结果是boolean型。当运算符对应的关系成立时,运算的结果为true,否则为false。比较运算符共有6个,通常作为判断的依据用于条件语句中。
2、赋值运算符
赋值运算符以符号“=”表示,它是一个二元运算符(对两个操作数作处理),其功能是将右方操作数所含的值赋给左方的操作数。
9. java 中 i++和++i有什么区别
i++和++i都是对i进行+1的操作,不同的是i++是在i值被使用后才+1而++i是i值在被使用之前就+1;拿你的例子进行说明
先分析count=(i++)+(i++)+(i++);运算是从左向右的,由于i++是在i值被使用后才+1所以第一个括号的(i++)应该为3,但是i的值变成了4,当运算第二个括号(i++)此时i的值是4所以第二个括号的(i++)为4但是此时i的值变成5了,类推第三个括号的(i++)为5但是此时i的值变成了6;也就是说该等式变为count=(3)+(4)+(5)=12此时i的值为6.
在分析int
j=3;
count=(++j)+(++j)+(++j);
++j的操作顺序是先将j加1后在进行操作,所以第一个括号(++j)先将j加1此时j变为4,所以括号的值相当于4;第二个括号将j加1后j的值变为5;第三个括号将j加1后j的值变为6所以等式相当于
count=(4)+(5)+(6)此时j的值是6
综上i与j
相当。简单的说i++就是先使用的i的值然后再加1,而++i就是先将i+1,然后使用i改变后的值。
希望你能采纳
10. java中++i和i++的区别
i++ 和 ++i的基本功能是相同的,都是对变量i进行自增1运算,从功能上讲相当于i =i+1 ;
++运算符分为前缀++和后缀++,如i++中的++就是后缀运算符,++i中的就是前缀运算符,两个的区别在于:
前缀++,先使用变量,再进行变量自增1
后缀++,先进行变量自增1,再使用变量
如:
示例代码1:
int i=0;
while( i++ < 5 ) //先用i的原值与5比较,比较完成后,无论结果是真还是假,都要再进行i=i+1运算
{
System.out.print( i+ " ");
}
这个循环运行5次,输出 1 2 3 4 5,最后的i值是6
示例代码2:
int i=0;
while( ++i < 5 ) //先进行i=i+1运算,然后用i的新值与5比较,判断结果是真还是假
{
System.out.print( i+ " ");
}
这个循环运行4次,输出 1 2 3 4,最后的i值是5