2014-07-01 67 views
2

我不明白爲什麼當我實例布爾我可以這樣做:布爾分配VS聲明

boolean a, b, c = false; 

,並讓他們都被分配到假的,但後來當我要修改的值,我可以」 t do

a, b, c = true; 

有人知道這是爲什麼嗎?

+1

因爲這是該語言的語法。 –

+3

'a,b,c = false'不是'a = b = c = false';它設置c爲false,a和b爲默認值(這也是false)「 –

+0

使用'boolean a = false,b = false,c = false;' –

回答

5
boolean a, b, c = false; 

聲明abc這裏,但只有分配c。如:

boolean a; 
boolean b; 
boolean c = false; 

如果你要分配的各個變量,你必須使它明確:

boolean a = false, b = false, c = false; 

(但在這一點上,很可能會更具可讀性將其分割成多個行。)

因此,它是沒有意義有

a, b, c = true; // invalid 

你可以,但是,使用

a = b = c = true; // valid 

分配abc所有true

+0

所以第二個真的很喜歡: 'a; b; c = true;' 這是無意義的嗎? – jhobbie

+0

@jhobbie我想你可以這麼說。這只是歸結爲這樣一個事實:在像這樣的表達式中使用逗號在語法上是無效的。 – arshajii