永发信息网

JAVA里面,为什么short s1 = 1; s1 = s1 + 1;有错,而 short s1 = 1; s1 += 1;没错? 希望回答详细一点。

答案:1  悬赏:0  手机版
解决时间 2021-04-07 13:55
JAVA里面,为什么short s1 = 1; s1 = s1 + 1;有错,而 short s1 = 1; s1 += 1;没错? 希望回答详细一点。
最佳答案
因为byte、 short、 int 不会互相转换,它们三者在计算时会转换成 int 类型。 而“+”是算术运算符,有算术运算符,就是已经在运算了,所以结果会转成int 类型。 如果把 int 类型的结果赋给 byte、short类型的结果,必须加上强制声明。 所以, 上面的第一个语句块,错在用“+”这个算术运算符运算后,结果变成了 int 型, 然后重新把计算结果赋给 short 型的变量时,没有强制声明值为 short的型的,所以会出错。 应该更改为: short s1 = 1; s1 = (short)s1 + 1; 而第二个语句块,s1 += 1; 不会出错,因为“+=”是赋值运算符,不牵涉与其它类型的数字计算,也不会转成 int 类型的,所以没错。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一个数的4.5倍减去1.2与子5的积差是7.5求这个
新手第一次出什么COS好?
大兴光大银行西红门具体地址和乘车路线
男牛女鼠生什么属相的孩子好
有一个射手女总是很喜欢酸我 呛我(但她不讨
聚丰源超市地址在哪,我要去那里办事
用西组词
纽曼的mp4怎么播放不出啊 我的m958
停车位选择哪个好
我老婆自私、不相信我、是钱如命、不孝顺、无
汽车启动难,甚至无法启动和发电机电压偏低有
bigbang什么时候去服兵役?
谁知道朝阳镇到哈尔滨的客车在哪等车
A man is not old as long as he is seeking
你能写出一个比1/6大 比1/5小的数吗? 你是怎
推荐资讯
偷税是什么意思?
邦联制与联邦制有什么区别
---Do you know now?---In the
律师在执业中应注意的几个问题
哪里可以做6米乘以6米的帐篷折叠伞
为什么甩腰部脂机没用
Mid-Autumn Day是什么意思
鑫鹤缘欢唱KTV怎么去啊,有知道地址的么
爱尚发型在哪里啊,我有事要去这个地方
为什么我控制不住自己的情欲
特别不想回婆家
我的电脑开机听音乐听着听着就没有声音了
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?