[問題] Java的if判斷問題

看板java作者 (裝配匠)時間8年前 (2015/09/13 21:06), 8年前編輯推噓5(509)
留言14則, 11人參與, 最新討論串1/1
程式碼 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

09/13 21:11, , 1F
因為false是boolean
09/13 21:11, 1F

09/13 21:12, , 2F
c = false這個expression的值就是c,c是boolean
09/13 21:12, 2F

09/13 21:19, , 3F
因為你把false又給了c啊!!所以正確應該是c==false
09/13 21:19, 3F

09/13 21:36, , 4F
樓上正解
09/13 21:36, 4F
原來是醬子阿 感謝各位 ※ 編輯: Su22 (36.227.80.25), 09/13/2015 21:40:13

09/13 22:24, , 5F
既然c是boolean了,if(c){} 就可以了不用 if(c == true)
09/13 22:24, 5F

09/13 22:24, , 6F
然後把c取的有意義的名稱,就 if(isC) 之類就容易理解
09/13 22:24, 6F

09/14 12:44, , 7F
==
09/14 12:44, 7F

09/15 01:01, , 8F
沒那麼複雜,就是你少打一個等號這樣…
09/15 01:01, 8F

09/15 08:32, , 9F
因為c=false的時候他會把false存到c裡
09/15 08:32, 9F

09/15 08:32, , 10F
if(c) compile還是合法的值,if裡面就是要擺boolean
09/15 08:32, 10F

09/15 20:24, , 11F
反正 if( C ) C是boolean 型態就對
09/15 20:24, 11F

09/15 23:11, , 12F
op 的 code 寫該是 if (!c) { 才對呀...
09/15 23:11, 12F

09/16 22:39, , 13F
用 if (false == c), 萬一不小心寫成 =,也會 compile err
09/16 22:39, 13F

09/18 21:32, , 14F
樓上:大家一直在說是 bool 根本不該比較true/false
09/18 21:32, 14F
文章代碼(AID): #1LzNJTps (java)