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

种一棵树

中级黑马

  • 黑马币:32

  • 帖子:98

  • 精华:0

  1. class Test0
  2. {

  3.         public static void main(String[] args)
  4.         {
  5.                 boolean m = true;    //初始化m
  6.                 if (m = false)
  7.                         {
  8.                         System.out.println("true");
  9.                         }
  10.                 else
  11.                         {
  12.                         System.out.println("false");
  13.                         }
  14.         }
  15. }
复制代码
if(m = false)语句中使用赋值运算(=),编译得到结果false。
使用关系运算符 if(m == false),也得到同样的结果false。
这两者之间有什么区别?



评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

6 个回复

倒序浏览
(m = false): 表示将false赋值给m,然后整个括号的结果值以m的值表示,即false
(m == false):  表示判断m与false是否相等,如果相等的整个括号的结果值为true,不相等整个括号的结果值为false

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

回复 使用道具 举报
xietansheng 发表于 2014-3-30 14:19
(m = false): 表示将false赋值给m,然后整个括号的结果值以m的值表示,即false
(m == false):  表示判断m与 ...

谢谢!
觉得使用==比较直观容易理解
回复 使用道具 举报
种一棵树 发表于 2014-3-30 14:29
谢谢!
觉得使用==比较直观容易理解

if (m = false); 使用这个毫无意义,因为结果已经是确定的,就相当于if (false);
一般情况下,
如果需要 if (m == false), 则使用 if ( ! m );
如果需要 if (m == true), 则使用 if ( m );
回复 使用道具 举报
if()里边不能用=,没意义了,要用==
=是赋值运算符
==关系运算符
作用不一样滴
回复 使用道具 举报
xietansheng 发表于 2014-3-30 14:39
if (m = false); 使用这个毫无意义,因为结果已经是确定的,就相当于if (false);
一般情况下,
如果需要  ...

嗯,因为这个m的类型是Boolean型,可以直接赋值,如果是其他类型的话,是没有什么意义的。因为在百度上查看了一下,有关的回答。想更清楚的理解这个问题。
百度知道有关问题的回答如下:
Q:  java语言 if语句中的等号一定要==这样写吗 =怎么不行?
A: ==是比较值是不是一样,=是比较变量内存是否一样,你比较两个变量的值当然要用==,字符串比较使用equals方法

原文地址如下:
http://zhidao.baidu.com/link?url=WKS5LUYoXT4nKAqL0dxpE7bduYuzPxFLVUJiwbdW83j08z5MipgKcAP4LEjKCPa2TOybTvJqEzztxxOjr4fXJK
回复 使用道具 举报
明白了就好。、、
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马