复合赋值运算符到底怎么运算的?
先看一道题目:short s1 = 1; s1 = s1 + 1;
有什么错?short s1 = 1; s1 +=1;
有什么错?
此题乍一看,这两段代码貌似没有什么区别,但是它们的执行结果是不一样的。
结果是第一段代码会出错,第二段代码不会出错。
第一段代码的分析:
这段代码的第二句(s1=s1+1)就是简单的两个数字相加,结果赋值给第一个变量。
此时运算结果的数据类型由以下规则决定:
1,如果参与相加运算的表达式或数字有double类型,则结果是double类型
2,如果参与相加运算的表达式或数字有float类型,则结果是float类型
3,如果参与相加运算的表达式或数字有long类型,则结果是long类型
4,如果参与相加运算的表达式或数字没有以上3种数据类型,则结果是一律是int类型
按照这个规则,s1=s1+1;那么最终的运算结果应该是int,所以赋值给short类型的s1会出错。
第二段代码的分析:
类似于 num1 += num2 这样的形式的复合赋值表达式,,实际上等同于(num1的类型)(num1+num2),也就是将两个数相加之后的结果强制转型为赋值运算符左边操作数的数据类型。唯一的不同点就是num1只会计算一次,所以理论上复合赋值运算符的效率更高。
s1+=1;就会等同于 s1=(short)(s1+1);所以结果是没问题的。
各位是否明白了这个规则呢?请看以下两段代码,您是否能正确地说出答案呢?
下面的代码输出什么值?short x = 3; x += 4.6; System.out.print(x);
下面的代码有错吗?int i = 5; long j = 8; i = i + j; i += j;
我这次馋的,真不是TA的身子!89块,散发出999的沙龙香!不知道大家有没有这样的体验,有一个人,你只是闻到TA身上的香味,就能猜出TA的衣着妆容甚至是性格。的确,香水就像一张隐形的名片的存在,它赋予我们识别度,让别人透过气息了解我们的灵魂
经济内循环之下普通人如何获利?大家好,我是老李。今天和大家聊聊经济内循环。其实本来老李不是很想将这件事的,主要是因为第一,这件事其实并不是一件好事,第二咱们也不是主动选择的,是被逼无奈所选择的,我们如果能外循环
三胎放开,与你何干?这个世纪难题如今依旧是不解之题(二)大家好,我是老李。今天和大家聊聊人口结构。在昨天的文章三胎放开,与你何干?这个世纪难题到如今依然是不解之题(一)中,说到2010年中国第六次人口普查,高层就已经知道我国的生育率太低
写在滴滴上市之前一个行业的编年史大家好,我是老李。今天和大家聊聊滴滴。滴滴终于要上市了,滴滴上市之后几乎一定是一个千亿美元规模的企业。滴滴应该是我们国内融资次数最多的一个互联网大厂了,如果从字母A到Z来排的话,估
投资中的底层资产到底有多重要?大家好,我是老李。今天和大家聊聊底层资产。昨天老李和大家谈论过投资中最重要的是看投向哪些底层资产,其中就聊到了衍生品投资。说衍生品投资大家可能不是很熟悉,但这确实是我们普通大众接触
学理财到底学的是什么?大家好,我是老李。今天和大家聊聊学投资。可能有不少人和老李我一样,一直在思考一个问题学投资到底学的是什么?学的是产品吗?还是要学怎么挣钱?甚至于说是学怎么攒钱还是学其他什么呢?有一
可以使用一辈子的保鲜盒,让冰箱整洁不串味,食物保鲜延长2倍现在,天气越来越燥热,让食材的保存也越来越难,就算发给冰箱里,也极容易滋生细菌,还会让食材各种串味发霉。没有吃完的饭菜和水果,倒掉又觉得浪费,总想着保鲜起来下一次再吃,但是用保鲜膜
发动机舱脏了,自己可以用水冲洗吗?真相来汽车发动机舱因为需要散热,所以并不是密封的。使用时间久了,机舱内就比较脏。里面线路管道一大堆,能不能用水冲洗呢?有些人说不能,用水洗容易导致短路。也有人说可以,车子没那么脆弱,厂家
别只关心股市了,这件事关系到我们每一个人大家好,我是老李。今天和大家聊聊养老问题。前两天有一个非常重大的新闻,被淹没在了股市的报道之中,那就是我们国家也可能要搞410K了。虽然老李我是不太相信国家会强制或者半强制的让大家
有的人结婚要钱,有的人结婚要命大家好,我是老李。最近有些新闻是实打实的婚姻劝退,杭州女子失踪案终于告破,凶手竟然是丈夫,女子跳楼摔成高位截瘫,法院判不得离婚,原因是丈夫不同意离婚。这几年杀妻案频频曝光,手段极其
国货又被低估了?手电亮度如人造太阳,小米有品众筹1天百万男人,不论年龄的大小总是需要一些玩具的。大男人的一个类型的玩具被叫做EDC,而手电是EDC不可或缺的搭配之一。什么样的EDC手电能入我们的法眼?实话实说不同环境不同类型的场景有不同