首页 > 试题广场 >

What is the result?

[单选题]

public class IfTest{
    public static void main(String[]args){
        int x=3;
        int y=1;
        if(x=y)
            System.out.println("Not equal");
        else
            System.out.println("Equal");
     }
}
下面结果输出是?

  • The output is “Equal”
  • The output in “Not Equal”
  • An error at line 5 causes compilation to fall.
  • The program executes but does not print a message.
这个题考查两个知识点。
1、Java中,赋值是有返回值的 ,赋什么值,就返回什么值。比如这题,x=y,返回y的值,所以括号里的值是1。
2、Java跟C的区别,C中赋值后会与0进行比较,如果大于0,就认为是true;而Java不会与0比较,而是直接把赋值后的结果放入括号

这题,我忽略了第二点。
编辑于 2016-08-26 09:57:23 回复(20)
注意Java与C/C++的区别
发表于 2018-02-25 14:14:16 回复(0)
我来解析下:
其实这个是由于java和C语言的不同处理机制导致的:

C语言中
当if语句中的条件为赋值语句时,实际上是将赋值后的结果与0进行比较【左值】
if(1)  由于1>0  所以认为是true

java语言中,虽然也用了左值,但是不再与0比较,而是直接将0放入if()中
但是int类型,不能转换为boolean,所以会报错:“ Type mismatch: cannot convert from int to boolean

发表于 2015-08-11 18:17:33 回复(10)
C.
if()语句括号中为比较表达式,返回值要么是true,要么是false,if(x=y)是将y赋值给x,但是数据类型是int类型的,编译不能通过,如果把代码改为这样:
boolean x = false;
boolean y = ture;
if(x=y){...}这样就就不会报错了,编译正常通过。
发表于 2015-08-17 15:54:50 回复(11)
把=看成==,眼神不好的来报道
发表于 2017-08-09 15:21:06 回复(11)
第五行少了一个"="号。。。加上就对了!!!
发表于 2016-08-26 21:26:28 回复(2)
if(boolean类型)  java if()中放的是布尔类型的值,所以当括号里是赋值语句的时候会报错。
发表于 2016-01-27 20:31:13 回复(1)
c语言非0即真
Java判断语句要求括号里的值必须为布尔型
编辑于 2022-05-11 16:56:55 回复(0)
if的判断语句是boolean值,而此题是一个赋值语句,将y赋给x,所以选C
发表于 2022-03-30 12:09:20 回复(0)
java中if必须返回布尔类型
发表于 2020-04-30 13:49:06 回复(0)
代码亲测:http://blog.csdn.net/dawn_after_dark/article/details/74094399
发表于 2017-07-02 11:10:52 回复(0)
做选择题,一有不慎,就掉进他们的陷阱当中
if(boolean){}
这里面是需要boolean表达式的
题目中x=y 这是赋值方法
所以编译粗错
发表于 2017-01-06 17:04:21 回复(0)
C
会报编译时错误。
发表于 2015-01-03 15:12:33 回复(3)
java中看true和false,不看0和1
发表于 2022-02-26 15:58:42 回复(0)
大意了,只想到了第一层,y赋值给x,没想到他们的结果不是true,而是int类型。
所以会报错。
发表于 2022-02-10 09:44:24 回复(0)
x=y是赋值不是比较,此处应该是x==y。
发表于 2021-12-03 19:54:39 回复(0)
java中 ‘=’ 表示赋值符号,,“==”表示判断符号,,所以这里if语句中判断条件必须使用判断符号
发表于 2021-11-15 11:27:46 回复(0)
if中的语句判断直接报错
发表于 2021-11-08 11:48:07 回复(0)
在java中‘=’符号是赋值符号不是比较符号,比较的话用‘==’或者equals
发表于 2021-11-04 19:45:25 回复(0)
int类型不能直接转换成boolean类型,所以会报错?
发表于 2021-10-19 08:37:59 回复(0)