False boolean = True?

前端 未结 7 1030
粉色の甜心
粉色の甜心 2020-12-07 02:12

I found this code in a book and I executed it in Netbeans:

boolean b = false;
if(b = true) {
    System.out.println(\"true\");
} else {
    System.out.printl         


        
7条回答
  •  爱一瞬间的悲伤
    2020-12-07 03:02

    It's missing the double-equals. So it's doing an assignment instead of an equality comparison (and remember, the return value of an assignment is the new value). In most cases, the fact that most types are not boolean means the result is not a boolean and so it becomes illegal for an if statement, resulting in a compiler error. However, since the type here is already a boolean, the assignment results in a boolean and so the safety-check fails. Thus, b = true means that b is assigned the value true and this is the value that is returned and checked by the if statement.

提交回复
热议问题