能否深度分析一下
short a +=1;
与 short a=a+1 ;
以及a++; 之间的区别
能否深度分析一下
short a +=1;
与 short a=a+1 ;
以及a++; 之间的区别
+= 左右两边类型不同是会自动强制转换
+ 则不会自动强制转换
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);
结果是一样, 但是用的地方和效率方面有一定区别
首先, 用的地方来说, 很明显a++用的多, 在循环的时候几乎都是用的a++, 而且, a++有个特性是, 先返回自身再加1, 比如 b=a++, 实际上解析出来是b=a;a=a+1;
然后, 从效率来讲, a++的效率是最高的, 当然, 一部分人认为a+=1和它效率一样.
总之, a++相对来说使用是最广泛的.
short a +=1; 与short a=a+1,有错误!
仅从三者单独使用的结果来说,是一样的。
但具体不同情况就不一样了。
首先:short a;是定义,然后才能使用:a += 1或a++或a=a+1。
其次:三种方法了用到了+=、=、+、++四个运算符,他们的优先级是不一样的。
具体在表达式中究竟哪个先运算,就看优先级了;所以会造成三种情况下出现不同的结果!