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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Dark_Horse 中级黑马   /  2014-5-24 11:02  /  1643 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Dark_Horse 于 2014-5-24 12:05 编辑

这个小程序和我想象的结果不一样,求分析
  1. public static void m3(){
  2.                 boolean b=true;
  3.                 if(b=false)
  4.                 {
  5.                         System.out.println("a");
  6.                 }
  7.                 else if(b)
  8.                 {
  9.                         System.out.println(b);        
  10.                 }
  11.                 else if(!b)
  12.                 {
  13.                         System.out.println("c");
  14.                 }
  15.                 else
  16.                         System.out.println("d");
  17.         }
复制代码

8 个回复

倒序浏览
if(b=false)
if这个语句用来判断吧 。if(b==false)
回复 使用道具 举报
public static void m3(){
                boolean b=true;
                if(b=false)//在程序运行过程中,if(b=false)判断b=false的真假,判断的后应该进行了赋值,也就是把false赋给了b,
                {
                        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");
        }

结果是c,你也可以将System.out.println("c");换成System.out.println(b);会得到false  这样应该好理解
解释的不是很好  见谅
回复 使用道具 举报
More 发表于 2014-5-24 11:29
public static void m3(){
                boolean b=true;
                if(b=false)//在程序运行过程 ...

谢谢 ,明白了
回复 使用道具 举报

加个好友吧   我也是想报云计算的  准备看基础视频
回复 使用道具 举报
判断真假应该用等号,而不是赋值
回复 使用道具 举报
你的程序是这么回事,关键点在于if(b=false)这个条件判断语句,”=“是赋值的意思,属于赋值运算符,而”==“表示比较,属于逻辑运算符。故在在程序运行中,if(b=false)是在判断b=false的真假后进行了赋值,把false赋值给了b。
如:
  1. class Test1
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                
  6.                 boolean b=true;
  7.                
  8.                  if(b=false)
  9.                
  10.                 {
  11.                         
  12.                         System.out.println("a");
  13.                
  14.                 }
  15.                
  16.                 else if(b)
  17.                
  18.                 {
  19.                         
  20.                         System.out.println(b);        
  21.                
  22.                 }
  23.                
  24.                 else if(!b)
  25.                
  26.                 {
  27.                         
  28.                         System.out.println("c");
  29.                
  30.                 }
  31.                
  32.                 else
  33.      
  34.                 {                  
  35.                         System.out.println("d");
  36.   
  37.                 }      
  38.         }
  39. }
复制代码

其结果为c

  1. class Test1
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                
  6.                 boolean b=true;
  7.                
  8.                  if(b==false)
  9.                
  10.                 {
  11.                         
  12.                         System.out.println("a");
  13.                
  14.                 }
  15.                
  16.                 else if(b)
  17.                
  18.                 {
  19.                         
  20.                         System.out.println(b);        
  21.                
  22.                 }
  23.                
  24.                 else if(!b)
  25.                
  26.                 {
  27.                         
  28.                         System.out.println("c");
  29.                
  30.                 }
  31.                
  32.                 else
  33.      
  34.                 {                  
  35.                         System.out.println("d");
  36.   
  37.                 }      
  38.         }
  39. }
复制代码

其结果为 true.:):)
回复 使用道具 举报
中午休息 来转转看看  呵呵  楼上说的很对
回复 使用道具 举报
路过而已,……因为不懂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马