国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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ù)必一致的評論 (共 條)

分享到微博請遵守國家法律
镇原县| 雷州市| 安泽县| 韩城市| 彩票| 鸡东县| 晋江市| 阳山县| 鹤庆县| 龙门县| 江阴市| 深圳市| 河北区| 正阳县| 黎川县| 太仆寺旗| 长岭县| 巴彦淖尔市| 娱乐| 东莞市| 朝阳县| 莆田市| 新津县| 柞水县| 景泰县| 南漳县| 新巴尔虎左旗| 武威市| 莱州市| 舞阳县| 乌拉特前旗| 永新县| 柘荣县| 康乐县| 平利县| 隆尧县| 上虞市| 鄂尔多斯市| 宁德市| 宁国市| 上杭县|