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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

if (表达式)
{
语句;
}
其中表达式是用布尔类型表示,表达式为true,表达式满足时,执行语句,但是下面这条语句可以运行之后的结果是false,为什么程序编译和运行的时候都没有问题;
public class Test {
        public static void main(String[] args) {
                boolean m = true;
                if (m = false) {
                        System.out.println("true");
                } else {
                        System.out.println("false");
                }
        }
}

5 个回复

倒序浏览
因为m = false
当做false在使用
回复 使用道具 举报
if (m = false) 这句话执行后,m的值变为false;所以执行
else {
            System.out.println("false");
       }
这个语句
回复 使用道具 举报
m = false;是赋值语句,不是判断语句
回复 使用道具 举报
本帖最后由 hm837694030 于 2016-4-14 21:49 编辑

if (m = false) 这句有问题,if(关系表达式),“m=false”是赋值语句,即执行else语句。
正确格式为:if (m  == false) “=”是赋值运算符
“==”是关系运算符



回复 使用道具 举报
用 m == false  才会判断true还是false
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马