boolean bool = true;
if(bool = false) {
System.out.println(“a”);
} else if (bool) {
System.out.println(“c”);
} else if (!bool) {
System.out.println(“c”);
} else {
System.out.println(“d”);
}

解决方案 »

  1.   

    if(bool = false) 这个改成 if(bool == false) 
      

  2.   

    唉 刚发贴才发现写错了 重写一遍boolean bool = true;
    if(bool = false) {
    System.out.println(“a”);
    } else if (bool) {
    System.out.println(“b”);
    } else if (!bool) {
    System.out.println(“c”);
    } else {
    System.out.println(“d”);
    }
    想知道为什么结果是c不是b
      

  3.   

    boolean bool = true;
    if (bool == false) { //<---原因在这“=”与“==”
    System.out.println("a");
    } else if (bool) {
    System.out.println("b");
    } else if (!bool) {
    System.out.println("c");
    } else {
    System.out.println("d");
    }
      

  4.   

    也就是说,“bool=false”是把“false”赋值给“bool”,那么既然“bool”的值为“假”,当然会输出“c”。
    如果写成“bool==false”,就是用“bool”的值与“假”做比较,根据上面的定义,当然就会输出“b”。
      

  5.   

    这个问题比较弱弱了......
    bool = false表示重新给bool赋值,
    赋值完成后还是boolean类型,所以还是可以当做逻辑判断的,
    此时bool的值就是false,因此打印c不是b
      

  6.   

    oh,my god! 自己提的问题真弱 谢谢各位 
      

  7.   

    你们都误解lz的意思了, 他的代码没有问题首先, 你给bool赋值 true
    往下执行到
    if(bool = false), 在这里重新赋值, bool = false, 往下执行else if (bool) , 由于bool是false, 所以跳过执行下面的, 懂了?