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