问题 单项选择题

下面代码段的输出是( )。
if (5 & 7 > 0 && 5 | 2) System.out.println("true");

A.编译出错

B.5752

C.true

D.无输出

答案

参考答案:A

解析: 本题考查对位运算符和逻辑运算符的理解。位运算符“&”和“|”用于按位将两个数进行与和或的操作,两个操作数可以是整型、字节型、长整型和短整型,但不能是浮点型数据。逻辑运算符&&只能对两个布尔型的数据进行运算,返回的结果也是布尔型的。这点跟C语言是不同的,在C语言中,两个整型数据也能够进行逻辑运算。这在Java语言里是不允许的。在本题中,&&运算符的左边是布尔型数据,而右边是整型数据,所以就不能被编译通过。

单项选择题
单项选择题