點(diǎn)擊查看:2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門(mén)教程章節(jié)匯總
點(diǎn)擊查看:2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門(mén)教程第二章匯總
2.5 混合型算術(shù)表達(dá)式
你可以在一個(gè)表達(dá)式中混合使用各種基本類型的數(shù)值。處理混合型表達(dá)式的方式由應(yīng)用表達(dá)式中每個(gè)運(yùn)算符的簡(jiǎn)單規(guī)則決定。
這些規(guī)則被檢查的順序?yàn)椋?/P>
如果有一個(gè)double類型的操作數(shù),在進(jìn)行運(yùn)算前,要將另一個(gè)操作數(shù)轉(zhuǎn)換成double類型。
如果有一個(gè)float類型的操作數(shù),在進(jìn)行運(yùn)算前,要將另一個(gè)操作數(shù)轉(zhuǎn)換成long類型。
如果有一個(gè)long類型的操作數(shù),在進(jìn)行運(yùn)算前,要將另一個(gè)操作數(shù)轉(zhuǎn)換成long類型
對(duì)于給定的運(yùn)算,將依照順序?qū)嵤┑谝粭l規(guī)則。假如操作數(shù)中沒(méi)有double、float或long類型,就一定是int, short或byte類型,正像我們?cè)谇懊嫠吹降,它們使?2位算術(shù)運(yùn)算。
顯式類型轉(zhuǎn)換
有可能你不希望用上面所列的有關(guān)混合型表達(dá)式的默認(rèn)處理。例如,假如你有一個(gè)double類型的變量result,用兩個(gè)int類型的變量three, two計(jì)算它的值,值分別為3和2,語(yǔ)句為:
result=1.5+three/two
由于three/two是整型算術(shù)運(yùn)算,其結(jié)果為1,所以result的值為2.5;若three/two得1.5,最后結(jié)果就為3.0.你可以滿足顯示類型轉(zhuǎn)換獲得這個(gè)結(jié)果。
result-1.5+(double)three/two
這個(gè)顯式類型轉(zhuǎn)換將導(dǎo)致存儲(chǔ)在three中的數(shù)值在除法運(yùn)算執(zhí)行前被轉(zhuǎn)換為double類型。于是這個(gè)除法運(yùn)算將應(yīng)用規(guī)則1,操作數(shù)two也在除法運(yùn)算執(zhí)行前被轉(zhuǎn)換為double類型,因此result將得到數(shù)值3.0。
你可以將任何一種基本類型轉(zhuǎn)換成另一種基本類型,但是在做這項(xiàng)操作時(shí),一定要小心不要丟失數(shù)據(jù)信息。顯而易見(jiàn),把數(shù)值范圍較大的整數(shù)型轉(zhuǎn)換成數(shù)值范圍較小的整數(shù)類型就有可能丟失數(shù)據(jù)信息,這就好像將任何一個(gè)浮點(diǎn)型數(shù)值轉(zhuǎn)換成整型數(shù)值一樣,在原始數(shù)值大于float類型的最大值,將double類型轉(zhuǎn)換成float類型就有可能產(chǎn)生無(wú)窮值。
賦值中的類型轉(zhuǎn)換
當(dāng)賦值語(yǔ)句右側(cè)的表達(dá)式結(jié)果類型與左側(cè)的變量類型不一致時(shí),只要沒(méi)有丟失數(shù)據(jù)的可能,就自動(dòng)地進(jìn)行類型轉(zhuǎn)換。如果你將在此之前接觸的所有基本類型按如下順序排列:
byte - short - int - long -- flost - double
則只要是按此順序,即從左向右,就可以自動(dòng)地轉(zhuǎn)換。如果希望逆向轉(zhuǎn)換,比如,將double類型轉(zhuǎn)換成float類型或long類型,就必須使用顯式類型轉(zhuǎn)換。
相關(guān)推薦:
2014年9月計(jì)算機(jī)等考答案專題| 等考真題 | 答案交流
2014年9月等考成績(jī)查詢時(shí)間 | 查分免費(fèi)提醒 | 合格標(biāo)準(zhǔn)
2015計(jì)算機(jī)等考報(bào)考指南專題 | 2015等考報(bào)名時(shí)間預(yù)測(cè)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |