永发信息网

java中 关于short a +=1; 与short a=a+1 的问题

答案:4  悬赏:20  手机版
解决时间 2021-05-10 19:40
  • 提问者网友:遮云壑
  • 2021-05-09 22:23

能否深度分析一下

short a +=1;

与 short a=a+1 ;

以及a++; 之间的区别

最佳答案
  • 五星知识达人网友:行路难
  • 2021-05-09 23:17

+= 左右两边类型不同是会自动强制转换


+ 则不会自动强制转换


short a =0;


int b = 1;


a +=b;// 少用这个


a = a+b;//会出错的


a = (short)( a + b);



short a = a+1;要改成short a = (short)( a + 1);//1是int类型


你写的那3个没什么大的区别


但要注意这个 a = a++;


a的值是不会改变的;


for(int i =1;i<10;i++){
a=a++;
System.out.println(a);
}
System.out.println(a);


全部回答
  • 1楼网友:狂恋
  • 2021-05-10 02:23

结果是一样, 但是用的地方和效率方面有一定区别

首先, 用的地方来说, 很明显a++用的多, 在循环的时候几乎都是用的a++, 而且, a++有个特性是, 先返回自身再加1, 比如 b=a++, 实际上解析出来是b=a;a=a+1;

然后, 从效率来讲, a++的效率是最高的, 当然, 一部分人认为a+=1和它效率一样.

总之, a++相对来说使用是最广泛的.

  • 2楼网友:梦中风几里
  • 2021-05-10 02:07

short a +=1; 与short a=a+1,有错误!

  • 3楼网友:平生事
  • 2021-05-10 00:43

仅从三者单独使用的结果来说,是一样的。

但具体不同情况就不一样了。

首先:short a;是定义,然后才能使用:a += 1或a++或a=a+1。

其次:三种方法了用到了+=、=、+、++四个运算符,他们的优先级是不一样的。

具体在表达式中究竟哪个先运算,就看优先级了;所以会造成三种情况下出现不同的结果!

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯