看板 java 關於我們 聯絡資訊
程式碼 boolean c = false; if (c = false){ System.out.println("A"); }else{ System.out.println("B"); } run出來是"B" 但if後面的括號不是判斷出來應該是boolean值嗎? 為何可以用c=false這樣的指派動作而沒有編譯錯誤? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.80.25 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1442149597.A.CF6.html
Expsun: 因為false是boolean 09/13 21:11
ssccg: c = false這個expression的值就是c,c是boolean 09/13 21:12
gpctv: 因為你把false又給了c啊!!所以正確應該是c==false 09/13 21:19
abowspy: 樓上正解 09/13 21:36
原來是醬子阿 感謝各位 ※ 編輯: Su22 (36.227.80.25), 09/13/2015 21:40:13
jtorngl: 既然c是boolean了,if(c){} 就可以了不用 if(c == true) 09/13 22:24
jtorngl: 然後把c取的有意義的名稱,就 if(isC) 之類就容易理解 09/13 22:24
now99: == 09/14 12:44
cha122977: 沒那麼複雜,就是你少打一個等號這樣… 09/15 01:01
Dnight: 因為c=false的時候他會把false存到c裡 09/15 08:32
Dnight: if(c) compile還是合法的值,if裡面就是要擺boolean 09/15 08:32
Timba: 反正 if( C ) C是boolean 型態就對 09/15 20:24
adrianshum: op 的 code 寫該是 if (!c) { 才對呀... 09/15 23:11
dou0228: 用 if (false == c), 萬一不小心寫成 =,也會 compile err 09/16 22:39
adrianshum: 樓上:大家一直在說是 bool 根本不該比較true/false 09/18 21:32