2013-05-04 55 views
-2

假設我有以下一行代碼:如果我將一個int變量初始化爲int以外的值,會發生什麼?

int number = b/2;

其中b是一個奇數int。會發生什麼?另外,如果b代替long,那麼java會自動將這個long轉換爲int嗎?如果b是字符或其他荒謬的話會怎麼樣?

+1

就這樣,我們希望您在提問前做自己的研究*。 「會發生什麼」這種性質的問題很容易研究。輸入代碼,編譯並運行(如果編譯成功)。然後你就會知道。 – 2013-05-04 06:45:55

+0

http://refcardz.dzone.com/refcardz/core-java – 2013-05-04 06:47:04

回答

4

Java將自動擴展類型,但您必須使用一個強制類型自己縮小類型。

我建議你自己嘗試一下,因爲你可能會學到一些東西。如果沒有在某個時候真正做到這一點,你就無法學習編程。

0

它將返回b/2的整數值,如果b = 3,則b/2將返回1.但如果b是長變量,則說明long b = 3,那麼它將返回一個錯誤,指出可能的損失精度。

0

劃分整數會產生一個向0取整的整數。開始混合類型時,它取決於是否需要加寬(將自動發生)或縮小(大多數情況下不會自動發生)。

有關劃分的更多詳細信息可在Java Language Specification 15.17.2. Division Operator /中找到,並且在Java Language Specification Chapter 5. Conversions and Promotions處可縮小和擴大。

但我認爲在你的嘗試和嘗試Java程序是理解,而不僅僅是閱讀規範的更好方法。你不會通過編寫一個小測試程序來破壞任何東西。

相關問題