最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Java開發(fā)高質(zhì)量代碼建議1:三元操作符的類型務(wù)必一致

2022-11-15 18:00 作者:早起的年輕人  | 我要投稿

在Java開發(fā)中,三元操作符是 if-else 的簡化寫法,在項目中使用它的地方很多,也非常好用,但是好用又簡單的東西并不表示就可以隨便用,如下代碼:

運(yùn)行結(jié)果如下:


結(jié)果分析:

i是90,肯定小于200,兩者返回的值肯定都是99,但是這個99是有區(qū)別的:

  • s 是 執(zhí)行三元判斷,返回整型的 99,然后再轉(zhuǎn)String,實(shí)際為字符串類型的“99”

  • s1 是執(zhí)行三元判斷后,返回浮點(diǎn)型的 99.0,然后再轉(zhuǎn)String,實(shí)際為字符串類型的“99.0”

在101 和 101.0 這兩個數(shù)字中,在變量 s 中,三元操作符中的第一個操作數(shù)(99)和第二個操作數(shù)(101)都是 int 類型,類型相同,返回的結(jié)果也就是 int 類型的 99

而變量 s1 的情況就有點(diǎn)不同了,第一個操作數(shù)是 99(int 類型),第二個操作數(shù)卻是 101.0,而這是個浮點(diǎn)數(shù),也就是說兩個操作數(shù)的類型不一致,可三元操作符必須要返回一個數(shù)據(jù),而且類型要確定,不可能條件為真時返回 int 類型,條件為假時返回 float 類型。編譯器是不允許如此的,所以它就會進(jìn)行類型轉(zhuǎn)換了,int 型轉(zhuǎn)換為浮點(diǎn)數(shù) 99.0,也就是說三元操作符的返回值是浮點(diǎn)數(shù) 99.0,那這當(dāng)然與整型的 99 不相等了。


為什么是整型轉(zhuǎn)為浮點(diǎn),而不是浮點(diǎn)轉(zhuǎn)為整型呢?

這就涉及三元操作符類型的轉(zhuǎn)換規(guī)則:

  1. 若兩個操作數(shù)不可轉(zhuǎn)換,則不做轉(zhuǎn)換,返回值為 Object 類型。

  2. 若兩個操作數(shù)是明確類型的表達(dá)式(比如變量),則按照正常的二進(jìn)制數(shù)字來轉(zhuǎn)換,int 類型轉(zhuǎn)換為 long 類型,long 類型轉(zhuǎn)換為 float 類型等。

  3. 若兩個操作數(shù)中有一個是數(shù)字 S,另外一個是表達(dá)式,且其類型標(biāo)示為 T,那么,若數(shù)字 S 在 T 的范圍內(nèi),則轉(zhuǎn)換為 T 類型;若 S 超出了T 類型的范圍,則 T 轉(zhuǎn)換為 S 類型。

  4. 若兩個操作數(shù)都是直接量數(shù)字(Literal [1] ,則返回值類型為范圍較大者。

結(jié)論:

保證三元操作符中的兩個操作數(shù)類型一致,即可減少可能錯誤的發(fā)生。


Java開發(fā)高質(zhì)量代碼建議1:三元操作符的類型務(wù)必一致的評論 (共 條)

分享到微博請遵守國家法律
蓬溪县| 辽源市| 瓦房店市| 宜昌市| 雷波县| 福泉市| 潍坊市| 阳信县| 比如县| 云浮市| 达日县| 安岳县| 柞水县| 鹤岗市| 娱乐| 镇安县| 镇雄县| 甘南县| 安岳县| 昌江| 武鸣县| 安多县| 报价| 彩票| 黔西县| 即墨市| 集贤县| 山丹县| 新巴尔虎右旗| 康马县| 景东| 莫力| 阿城市| 甘肃省| 宁化县| 张家界市| 财经| 克山县| 云浮市| 海宁市| 遂溪县|