A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Op
{
        public static void main(String[] args)
        {
                boolean b=false;

        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");
        }
}
为什么不是输出a?

21 个回复

倒序浏览
输出c吧????
回复 使用道具 举报
如果想输出a 就 b==false  你那if里是赋值符号
回复 使用道具 举报
  if(b=false)  
你这是赋值符号啊?
回复 使用道具 举报
赋值符号 if那地一个 少写了一个等号哇
回复 使用道具 举报
输出c啊;
  if(b=false)   就是 if (false),所以不执行;
  else if(b) ,由于b已经被赋值为false了,所以也是 if(false);
  else if(!b), !b 就是true ,所以是 if(true),执行....
回复 使用道具 举报 1 0
if(b=false)   就是 if (false),所以不执行;
   else if(b) ,由于b已经被赋值为false了,所以也是 if(false);
   else if(!b), !b 就是true ,所以是 if(true),执行....


条件表达式中都是()中为true才执行下一句。
回复 使用道具 举报
以后真的注意了。。。 楼主真好
回复 使用道具 举报
输出C吧!!!!!!!!!!
回复 使用道具 举报
if判断括号里的boolean类型值是true才执行相应大括号里的,而且下层判断条件的范围从逻辑上可以理解是已经排除上面的判断范围了,第一次判断是将b赋值为false,第二次感觉没啥意义:L,!b为true于是就执行了……
回复 使用道具 举报
赋值符号啊。大哥
回复 使用道具 举报
class Test1 {
        public static void main(String[] args) {
                boolean b = false;

                if (b = false)        //这里的"="是表示的赋值语句,所以和if(b)没有区别,要表示判断是否相等,应该用"=="
                        System.out.println("a");
                else if (b)        //此时的b返回的是false
                        System.out.println("b");
                else if (!b)        //!b 返回的是true
                        System.out.println("c");
                else
                        System.out.println("d");
        }
}
回复 使用道具 举报
少了一个=号判断语句里面
回复 使用道具 举报
你的运算符错了是b==false
回复 使用道具 举报
if(b=false)//这句有问题,b=dalse一个等号是赋值等,b==false两个等号是测试等(可以理解为判断等)
//你在if里写的是赋值等而不是判断等,所以b=false是不会返回boolean值的,只是将false赋给b.
回复 使用道具 举报
boolean b = false;

                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");
                }
这样就能输出a了
回复 使用道具 举报
if里面少写了个=号
回复 使用道具 举报
b=false是一个赋值,等于if(false)当然不会输出a
回复 使用道具 举报
cyr 中级黑马 2015-4-22 11:42:32
19#
答案输出为"c"boolean类型赋值后是有返回值的,返回值就是赋的哪个值。结果你懂的。
回复 使用道具 举报
Cat 中级黑马 2015-4-22 12:02:24
20#
我觉得问题就是=和==,前者赋值,后者比较
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马