java 中 int i=i+1,和int i+=1,的区别?

不太明白谢谢!
int i = 1;
i = i + 1;

int i = 1;
i += 1;
如果 int 是 short 呢
两个都编译都会出错吗

据我所知是没有区别的,下面的只是上面的一种简写方式而已。如果i是short类型的是有区别的。
short i = 1;

// 错误,i+1运算结果是int型,将int类型值赋值给short类型变量需要显式的强制类型转换
// i= i+ 1;

// 正确,因为没有赋值过程,可以理解为i++,不需要类型的转换,或者也可以说是自动类型的转换
i+= 1;
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-12-12
short和1相加的时候
因为1是int的,加完结果就是int了
加赋给short就不行了
第2个回答  2009-12-12
我认为cxzucc的解释是正确的。

byte、short、char在做这种运算的时候会“提升”为int,再重新赋值给i的时候会出错
第3个回答  2009-12-12
没有区别吧
如果改成short的话第一个会出问题也就是 short i =1;i=i+1;会出问题
第二种我还没试过。。。
第4个回答  2009-12-12
木有区别....只是一个省略的写法...别的不用解释了吧

java 中 int i=i+1,和int i+=1,的区别?
据我所知是没有区别的,下面的只是上面的一种简写方式而已。如果i是short类型的是有区别的。short i = 1;\/\/ 错误,i+1运算结果是int型,将int类型值赋值给short类型变量需要显式的强制类型转换 \/\/ i= i+ 1;\/\/ 正确,因为没有赋值过程,可以理解为i++,不需要类型的转换,或者也可以说是自动...

i =1; 和i=i 1;有什么区别
在Java中,表达式"i=i+1;"与"i+=1;"的区别主要在于类型转换与运算的执行方式。表达式"i=i+1;"分为两步执行。首先,计算i+1的值,这里由于常量1被默认定义为int类型,所以计算结果也是int类型。然后,试图将这个int类型的结果赋值给short类型变量i。Java编译器在执行类型转换时,要求转换类型必须兼...

Java里的i++与++i的问题
首先,你前面一句话说的很对,i++是先运算最后加,++i是先加后参与运算。至于for(int i=0;i<20;i++){ };循环中的i++,它是这样递增的:i++是迭代语句,它的执行是有先后顺序的 程序进入for循环后,先执行int i=0;初始化,它只执行一次,然后程序检查i<20;如果i<20那么执行for循环,...

在java中i++,与i+=1分别代表什么含义
i++是在程序或循环执行完后i自加一次比如从0变为1。i+=1是程序在执行到这一步时i自动加1

java中i=i+1跟i=i++有什么区别
i = i+1 ,很容易理解就是i的值增1,返回给i 而 i = i++ ,i ++ 理论上在运算完毕以后要自加的,这个自加应该是发生在赋值之前,于是i的临时新值是 i+1 运算符只有一个 ++,所以会直接使用赋值号把右侧运算结果赋值给 i,于是 i 还是等于原来的 i 底层源码没见过……,也大致就是感觉...

Java的变量+1为什么不会影响变量的值?而变量+=1、变量++就可以影响?
+=1和++的意思就是k = k +1当然变量的值就变了 第一个i+1并不会改变自己的值而是打印结果是打印i+1的值而已 很简单啊,因为你输出的时候是i+1,那答应的当然是2了,但是你并没有去改变i的值,就像是,你有一个苹果,我也有一个苹果,我们两个加在一起是两个苹果,并不是你的会变成两...

java中+=和=+的区别
1.java中有=+的写法并且不报错,其效果相当于=,本人亲测,但是不知道原理。2.所以题主问题变成了,java中+=和=的区别。3.i+=1效果略相当于i=i+1(但是还是有区别)。i=1就是给i赋值为1。4.题主报错应该是类型转化错误。short a=3; a=a+2; a+2的结果类型转化成int,无法再赋 值给...

关于java中i++和++i的区别
int i= 1;例子:i++; 在当前行里i的值还是为1 只有在下一条语句里才变为2.++i; 在当前行里i的值即为2

java中i+=i等价于什么?计算顺序是怎样的? 知道的告诉下,谢谢了!
i+=i 等价于 i=i+i ;计算顺序是 先计算出 i+i 的值,然后将结果赋值给 i i+=j; 等价于 i=i+j; 就是将 i 在原有值的基础上再增加 j ,一般用于累加计算某项值。

有人告诉我在java的for循环语句中的i++和++i有什么区别?
通过简单的实例分析,我们可以直观地看出两者之间的区别。示例1 java int i = 1;System.out.println(i++); \/\/ 输出 1,i 的值变为 2 System.out.println(i); \/\/ 输出 2 通过上述代码,我们可以看到 `i++` 先返回当前值,然后进行递增操作。而 `++i` 则先递增 i 的值,然后返回新...

相似回答