黑马程序员技术交流社区

标题: 小判断 [打印本页]

作者: 来男.    时间: 2014-5-3 16:40
标题: 小判断
本帖最后由 来男. 于 2014-5-3 17:53 编辑

public class Demo33 {

        public static void main(String[] args) {

                boolean flag = true;
                if (flag = false) {
                        sop("if语句");//1
                } else {
                        sop("else语句");//2
                }
        }

        public static void sop(Object obj){
                System.out.println(obj);//输入2
        }
}

if我忘写了个“=”怎么不报错?if条件判断Boolean值(用“==”),怎么赋值("=")也不报错并打印2呢。


作者: skill20    时间: 2014-5-3 16:49
  1. public class Demo33 {

  2.         public static void main(String[] args) {

  3.                 boolean flag = true;
  4.                 if (flag = false) {     <font color="#ff0000">//这里 就是把false 给 flag了,主线程不读里面的语句了,跑else那去了。</font>
  5.                         sop("if语句");//1
  6.                 } else {
  7.                         sop("else语句");//2
  8.                 }
  9.         }

  10.         public static void sop(Object obj){
  11.                 System.out.println(obj);//输入2
  12.         }
  13. }
复制代码

作者: 来男.    时间: 2014-5-3 16:52
skill20 发表于 2014-5-3 16:49

但if()中也能写赋值语句而不用必须boolean判断吗?
作者: skill20    时间: 2014-5-3 17:01
来男. 发表于 2014-5-3 16:52
但if()中也能写赋值语句而不用必须boolean判断吗?

boolean 类型的就是判断的,这是我的理解。
作者: 来男.    时间: 2014-5-3 17:36
skill20 发表于 2014-5-3 17:01
boolean 类型的就是判断的,这是我的理解。

哎呀,我感觉自己脑袋有点进水,,
作者: 寻找人生目标    时间: 2014-5-3 18:07
=  是赋值
==是比较

这是两种
作者: dkwoxihuan    时间: 2014-5-3 19:29
1.if语句做==判断的时候返回false和true   也就是0和1了
2.楼主做了=赋值相当于判断语句返回false
3.我们通常用 if(0 == flag)这种写法来预防写错而进行赋值操作
作者: eternallove    时间: 2014-5-3 19:57
不管怎么的,表达式的值等于FALSE就会跳到else执行啊。。
作者: tc4892998    时间: 2014-5-3 20:04
=与==都是指令吧,不过=是赋值,==是判断,我是这么理解的




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