黑马程序员技术交流社区

标题: if else [打印本页]

作者: Dark_Horse    时间: 2014-5-24 11:02
标题: if else
本帖最后由 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.         }
复制代码

作者: 邵镛    时间: 2014-5-24 11:18
if(b=false)
if这个语句用来判断吧 。if(b==false)
作者: More    时间: 2014-5-24 11:29
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  这样应该好理解
解释的不是很好  见谅
作者: Dark_Horse    时间: 2014-5-24 11:42
More 发表于 2014-5-24 11:29
public static void m3(){
                boolean b=true;
                if(b=false)//在程序运行过程 ...

谢谢 ,明白了
作者: More    时间: 2014-5-24 12:09
Dark_Horse 发表于 2014-5-24 11:42
谢谢 ,明白了

加个好友吧   我也是想报云计算的  准备看基础视频
作者: KevinSmart    时间: 2014-5-28 21:13
判断真假应该用等号,而不是赋值
作者: 沐阳6011    时间: 2014-5-29 13:01
你的程序是这么回事,关键点在于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.:):)
作者: 冯云飞    时间: 2014-5-29 13:09
中午休息 来转转看看  呵呵  楼上说的很对
作者: 1007087594    时间: 2014-5-29 13:29
路过而已,……因为不懂




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