黑马程序员技术交流社区

标题: if else问题 [打印本页]

作者: 咕噜咕噜    时间: 2016-5-15 08:48
标题: if else问题
boolean b=true;
if(b=false)
{
        System.out.println("a");
}
else if(b)
{
        System.out.println("b");       
}
else if(!b)
{
        System.out.println("c");
}
else
{
        System.out.println("d");
}
打印的为什么是c而不是b呢
作者: 咕噜咕噜    时间: 2016-5-15 08:50
!b不是false吗  
作者: sssssssx    时间: 2016-5-15 09:14
第一条判断给b重新赋值了,b=false,如果第一条为b==false,则选b
作者: 可以假装看不见    时间: 2016-5-15 09:14
第一个if 你是把false赋值给b  所以b成了false !b就是true 输入是 c 没毛病  你可能第一个if是想写b==false吧  这样的话输出就是 b了
作者: innovator    时间: 2016-5-15 09:35
第一个你肯定是想判断的,不过你把赋值=和判断==搞错了,错了就有经验了,要吸取教训...
作者: 骄阳登峰    时间: 2016-5-15 10:02
本帖最后由 骄阳登峰 于 2016-5-15 10:18 编辑
  1. boolean b=true;
  2. if(b=false){                        //在判断条件时,先执行赋值操作,b值为false,执行else if
  3.         System.out.println("a");
  4.         } else if(b){                 //b的值为false,执行else if
  5.         System.out.println("b");        
  6.                 }else if(!b){                 //b的值为false,!b的值true,
  7.                         System.out.println("c");        //执行本语句,打印"c",
  8.                         } else {
  9.                         System.out.println("d");
  10.                         }
  11.                        
  12. }
  13. //执行本语句,打印"c",


  14. //如果将第二行的if语句的条件表达式中的b=false改为b==false

  15. boolean b=true;
  16. if(b==false){                   //b值为true,则判断条件"b==false"的值为false,执行else if
  17.         System.out.println("a");
  18.         } else if(b){                 //b的值为true,
  19.         System.out.println("b");    //执行本语句,打印"b"   
  20.                 }else if(!b){
  21.                         System.out.println("c");
  22.                         }else{
  23.                         System.out.println("d");
  24.                         }
  25. }

  26. //执行本语句,打印"b"
复制代码






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2