我檢討有人寫的代碼誰是當前不可用,我碰到這個傳來:「x == 01」是什麼意思?
double x = ...;
if(x == 01) {
// do something
}
我從來沒有見過這個。它有特殊的意義嗎?
我檢討有人寫的代碼誰是當前不可用,我碰到這個傳來:「x == 01」是什麼意思?
double x = ...;
if(x == 01) {
// do something
}
我從來沒有見過這個。它有特殊的意義嗎?
01
(以0開頭的數字)表示Java中的八進制(基數8)數字。
01
意味着八進制1
(這也是在小數1,所以在這種情況下沒有什麼區別。欲瞭解更多八進制信息,請參閱http://en.wikipedia.org/wiki/Octal)
如果你問爲什麼新變量x
已創建,可以稍後在代碼中使用。
(我非常懷疑這個)如果你問什麼==
的含義,它的意思是「等於」。正如你在第一行看到的那樣,只有1 =
是一項任務。
它在某種意義上具有特殊意義,它是八進制數字符號。否則它是無用的和混亂。 01是int常量1.它應該是
if(x == 1) {
// do something
}
對於javac沒有區別。它將被編譯成相同的字節碼。此外,javac會將您的表達式轉換爲
if(x == 1.0D) {
// do something
}
如果您反編譯.class,您會看到它。這種從「較小」到「較大」類型的自動轉換被稱爲類型提升。
你是專指'=='還是'01'? –
或者,在提供賦值的情況下,可能是double和int之間的等價關係? – femtoRgon
這不應該被關閉(除非它是重複的)。這是一個有效的問題。 – brimborium