更新時(shí)間:2023年02月16日13時(shí)49分 來(lái)源:傳智教育 瀏覽次數(shù):
在Java編程中,一般涉及到short、byte和char類型的運(yùn)算時(shí)候,首先會(huì)將這些類型的變量值強(qiáng)制轉(zhuǎn)換為int類型,然后對(duì)int類型的值進(jìn)行計(jì)算,最后得到的值也就是int類型。
所以,假如我們把兩個(gè)short類型的值相加,最后得到的結(jié)果是int類型;如果把這兩個(gè)byte類型的值相加,最后也會(huì)得到一個(gè)int類型的值。如果需要得到short類型的結(jié)果,就需要顯式地把運(yùn)算結(jié)果轉(zhuǎn)換為short類型,用一個(gè)語(yǔ)句舉例short s1 = 1;s1 = s1 + 1,由于在運(yùn)行時(shí)會(huì)首先將s1轉(zhuǎn)換成int類型,因此s1+1的結(jié)果為int類型,這樣編譯器就會(huì)報(bào)錯(cuò),故而,正確的寫法應(yīng)該是short s1 = 1;s1 = (short) (s1 + 1)。
有一種例外情況。“+=”是Java語(yǔ)言規(guī)定的語(yǔ)法,Java編譯器會(huì)對(duì)它進(jìn)行特殊的處理,因此,語(yǔ)句short s1 = 1;s1 += 1能夠編譯通過(guò)。
北京校區(qū)