a + = 10和a = a + 10之间是否有任何区别?

时间:2014-05-23 10:21:06

标签: java

以下两行代码之间有什么区别吗?

a += 10;
a = a + 10;

哪一个更好用?

4 个答案:

答案 0 :(得分:3)

不,他们是一样的。

第一个a = a + 10是长版本或表达式的完整版本,第二个a += 10是增量运算符。

他们的结果是一样的。它会将当前值加10。

http://java.about.com/od/c/g/compoundassgnment.htm

所有复合运营商。

Jon Skeet的一些帮助

  

E1 op = E2形式的复合赋值表达式等效于E1 =(T)((E1)op(E2)),其中T是E1的类型,但E1仅被评估一次。

这意味着,

a += 10 

等于这个陈述,

a = (int) (a + 10);

因此,只有编译器才有表达式和转换差异。否则他们的输出会是相同的。

这是参考链接。 https://stackoverflow.com/a/2081951/1762944

答案 1 :(得分:2)

否 - + =语法更清晰,通常更清晰,但底层实现是相同的。

答案 2 :(得分:1)

我会推荐

a+=10

因为它会在内部进行类型转换

示例:

错误:

byte b=1;
b=b+1;

没有错误:

  byte b=1;
   b+=1;

答案 3 :(得分:-1)

没有区别。 a=a+10;最好使用它,因为它很好地阅读和维护代码。

相关问题