作者Su22 (装配匠)
看板java
标题[问题] Java的if判断问题
时间Sun Sep 13 21:06:35 2015
程式码
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://webptt.com/cn.aspx?n=bbs/java/M.1442149597.A.CF6.html
1F:→ Expsun: 因为false是boolean 09/13 21:11
2F:→ ssccg: c = false这个expression的值就是c,c是boolean 09/13 21:12
3F:推 gpctv: 因为你把false又给了c啊!!所以正确应该是c==false 09/13 21:19
4F:推 abowspy: 楼上正解 09/13 21:36
原来是酱子阿 感谢各位
※ 编辑: Su22 (36.227.80.25), 09/13/2015 21:40:13
5F:→ jtorngl: 既然c是boolean了,if(c){} 就可以了不用 if(c == true) 09/13 22:24
6F:→ jtorngl: 然後把c取的有意义的名称,就 if(isC) 之类就容易理解 09/13 22:24
7F:推 now99: == 09/14 12:44
8F:→ cha122977: 没那麽复杂,就是你少打一个等号这样… 09/15 01:01
9F:推 Dnight: 因为c=false的时候他会把false存到c里 09/15 08:32
10F:→ Dnight: if(c) compile还是合法的值,if里面就是要摆boolean 09/15 08:32
11F:推 Timba: 反正 if( C ) C是boolean 型态就对 09/15 20:24
12F:→ adrianshum: op 的 code 写该是 if (!c) { 才对呀... 09/15 23:11
13F:→ dou0228: 用 if (false == c), 万一不小心写成 =,也会 compile err 09/16 22:39
14F:→ adrianshum: 楼上:大家一直在说是 bool 根本不该比较true/false 09/18 21:32