Java中 s = s+1 与 s +=1 的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35654259/article/details/84072507

问题:

public class Operator {
	public static void main(String[] args) {
		opreator1();
		opreator2();
	}

	private static void opreator1() {
		short s = 1;
		s = s+1;//会报错
		System.out.println(s);
	}
	
	private static void opreator2() {
		short s = 1;
		s += 1;
		System.out.println(s);//输出2
	}
}

相信大家测试上述代码时会看到opreator1()会报错opreator2()可以运行。

opreator1()报错原因

   整数的数据类型默认是int类型。而数据类型的转换是:

:  byte,short,char -- int -- long -- float -- double

  所以s+1默认转换为int类型。

  详情可以参考https://blog.csdn.net/qq_35654259/article/details/83928874

opreator2()可以运行原因

 s += 1;等价于s = (s的数据类型) (s+1)

猜你喜欢

转载自blog.csdn.net/qq_35654259/article/details/84072507