2016年6月16日 星期四

Java 學習網誌 025:Mixing Types


在用arithmetic operator做運算時,我們可用具有int形態的數字,或是具有double形態的數字,甚至兩種形態的數字同時使用。而其運算結果的形態是依據運算式內使用的數字形態來決定。

例如,運算式中有兩組數字皆具有int的形態,那其結果會是一個也具有int形態的數字;若運算式中的兩組數字中有一個具有int形態,另一個具有double形態,或兩個數字皆為double形態,則其結過會是一個具有double形態的數字。

原因是因為double形態涵括的範圍比int形態涵括的範圍大,具有int形態的數字都涵括在double形態數字內,也就是說,當運算式跨到大範圍的區域後,整個運算式包含其結果都具有大範圍所隸屬的形態。

因此,以下列出的各種數字形態,其涵蓋的範圍由左到右越來越大,因此,一個運算式結果的形態以運算式中所有數字形態隸屬于最大,也就是最右邊的形態為主。







不過,例外的是,一個運算式中所有數字裡最大的形態若是byteshort,其運算的結果則會擁有int的形態。換句話說,一個運算式的結果絕對不會擁有byte或short的形態。

參考資料:Walter Savitch. Absolute Java. 5th ed.

沒有留言:

張貼留言