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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 来男. 中级黑马   /  2014-5-3 16:40  /  924 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 来男. 于 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呢。

8 个回复

倒序浏览
  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. }
复制代码
回复 使用道具 举报

但if()中也能写赋值语句而不用必须boolean判断吗?
回复 使用道具 举报
来男. 发表于 2014-5-3 16:52
但if()中也能写赋值语句而不用必须boolean判断吗?

boolean 类型的就是判断的,这是我的理解。
回复 使用道具 举报
skill20 发表于 2014-5-3 17:01
boolean 类型的就是判断的,这是我的理解。

哎呀,我感觉自己脑袋有点进水,,
回复 使用道具 举报
=  是赋值
==是比较

这是两种
回复 使用道具 举报
1.if语句做==判断的时候返回false和true   也就是0和1了
2.楼主做了=赋值相当于判断语句返回false
3.我们通常用 if(0 == flag)这种写法来预防写错而进行赋值操作
回复 使用道具 举报
不管怎么的,表达式的值等于FALSE就会跳到else执行啊。。
回复 使用道具 举报
=与==都是指令吧,不过=是赋值,==是判断,我是这么理解的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马