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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵崇友 中级黑马   /  2013-3-30 17:18  /  3545 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 赵崇友 于 2013-3-30 21:48 编辑

class ifDemo
{

    public static void main(String[]args)
   {
       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");
   }
}

大家帮忙看看运行结果,解释下原因最好!

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

9 个回复

倒序浏览
这个程序的结果是c 分析如下:
if(b=false);程序到这来时b被赋值为false,由于if条件是false了所以不走if体中的代码,
直接向下运行,到了else if(!b);时 !false==true;此时运行结果:c

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
if()括号里只要是boolean就可以.b就是一个boolean型的变量
b=false 是在对b赋值.b=false,!b就是true了.那么只有下面这个满足true
else if(!b)
  System.out.println("c");
结果是c咯,

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
class ifDemo
{

    public static void main(String[]args)
   {
       boolean b = true;
  if(b=false)  //B被赋为false  所以不打印
      System.out.println("a");
  else if(b)// 此时 b 是false  所以也不打印
  System.out.println("b");
  else if(!b)// 此时!b为true,打印 c
  System.out.println("c");
  else
  System.out.println("d");
   }
}

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报

  1. class luntanTest
  2. {

  3.     public static void main(String[]args)
  4.    {
  5.        boolean b = true;
  6.      if(b=false)  //这个是先进行b=false的赋值  然后再进行if的判断,判断不通过,接着判断。
  7.       System.out.println("a");
  8.      else if(b)//此时b为假,所以判断不通过
  9.         System.out.println("b");
  10.       else if(!b)// !b为真,执行此条件下的语句  输出c
  11.         System.out.println("c");
  12.      else
  13.         System.out.println("d");
  14.    }
  15. }
复制代码
楼上各位说的都正确,我跟他们说的都是一样的,再加以描述,希望你能更明白。

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
if(布尔表达式){},所以在()中为布尔值,不是true就是false;若为true则执行if下{}中的语句,若为false则不执行;
所以根据这个
  1. public class Demo7 {
  2.          public static void main(String[]args)
  3.            {
  4.                boolean b = true;
  5.           if(b=false)  //b==false布尔值为false
  6.               System.out.println("a");//不执行
  7.           else if(b)//b==false
  8.           System.out.println("b");//不执行
  9.           else if(!b)//!b==true,布尔值为真
  10.           System.out.println("c");//执行  if语句结束
  11.           else//不执行
  12.           System.out.println("d");
  13.            }

  14. }
复制代码
所以结果为:c

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
没赶上!不然还能捞点技术分
回复 使用道具 举报
我都发了好多 技术问题 都没捞技术分

点评

额,你应该报的是ASP.Net+Android+IOS的吧,如果你发帖了,你们版主会给你加分的,如果你回答了,一般都会给加分的。  发表于 2013-3-30 20:02
回复 使用道具 举报
class ifDemo
{
   public static void main(String[]args)
   {
                boolean b = true;//布尔型变量只有两个值:false,ture
                if(b=false)//"="是一个赋值运算符,因此b被重新赋值为false,条件不满足,不执行打印a的语句。继续向下判断。
                        System.out.println("a");
                else if(b)//b=false,条件不满足,不执行打印b的语句。继续向下判断。
                        System.out.println("b");
                else if(!b)//!b=true,条件满足,执行打印c的语句。由于if语句有一个条件满即可。因此最终结果为c
                        System.out.println("c");
                else
                        System.out.println("d");
   }
}
回复 使用道具 举报
guobin_lu 发表于 2013-3-30 18:41
我都发了好多 技术问题 都没捞技术分

坚持就是胜利!面包会有的,技术分也会有的
一起加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马