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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class Foo{  
        public static void main(String args[]) {
                int x = 100;
                int y = 200;
                if (x = y)
                        System.out.println("Not equal");
                else
                        System.out.println("Equal");
        }
}

点评

只问结果,为什么不自己敲上去运行一遍呢  发表于 2012-11-13 09:17

7 个回复

倒序浏览
它会编译不过报错
错误信息为:Type mismatch: cannot convert from int to boolean
意思是不能把int类型转成boolean类型

  1. public class Foo{  
  2.         public static void main(String args[]) {
  3.                 int x = 100;
  4.                 int y = 200;
  5.                 if (x = y)//标记1
  6.                         System.out.println("Not equal");
  7.                 else
  8.                         System.out.println("Equal");
  9.         }
  10. }
复制代码
当代码运行到标记1时候:
1.将y的值赋给x
2.判断x,因为x是int类型,不能转成boolean类型所以会报错

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 dan8612 于 2012-11-13 15:00 编辑

把代码改为:
public class Foo{  
        public static void main(String args[]) {
                int x = 100;
                int y = 200;
                if (x ==y)
                        System.out.println("Not equal");
                else
                        System.out.println("Equal");
        }
}
运行的结果是“Equal”.
回复 使用道具 举报
这里的=是赋值运算符,将y的值赋给x
if()中应该是条件表达式,对运算结果是boolean的表达式进行判断 应该使用比较运算符==  
另外 equal 是等于,输出语句中的内容要换一下。
回复 使用道具 举报
这题也太。。。{:soso_e110:}
回复 使用道具 举报
dan8612 发表于 2012-11-13 10:05
把代码改为:
public class Foo{  
        public static void main(String args[]) {

if(x = =y)两等号之间有空格 肯定也报错啊  ;P
回复 使用道具 举报
if (x = y){}里面只能boolean类型的,=作为赋值运算符的。
回复 使用道具 举报
黑_礼_服 发表于 2012-11-13 10:44
if(x = =y)两等号之间有空格 肯定也报错啊

这是格式问题,与我写的无关。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马