Java 中 & 和 && 之间的区别?

2022-08-31 07:08:48

可能的重复:
在Java中,|和||有什么区别?
&& 和 && 的区别

我只是想知道 &and& & 之间的区别是什么?
几天前,我写了一个语句的条件,看起来像这样:if

if(x < 50 && x > 0)

但是,我将 && 更改为 just &,它没有显示任何错误。有什么区别?


示例:我编译了这个简单的程序:

package anddifferences;

public class Main {

    public static void main(String[] args) {
        int x = 25;
        if(x < 50 && x > 0) {
            System.out.println("OK");
        }

        if(x < 50 & x > 0) {
            System.out.println("Yup");
        }
    }
}

它打印了“OK”和“Yup”。那么,如果它们都有效,我使用哪一个重要吗?


答案 1

&是按位的。 是合乎逻辑的。&&

&评估操作的两端。
评估操作的左侧,如果是,则继续并评估右侧。&&true


答案 2

& 是按位和运算符比较每个操作数的位。
例如

int a = 4;
int b = 7;
System.out.println(a & b); // prints 4
//meaning in an 32 bit system
// 00000000 00000000 00000000 00000100
// 00000000 00000000 00000000 00000111
// ===================================
// 00000000 00000000 00000000 00000100


&& 是逻辑 AND 运算符,仅比较操作数的布尔值。它需要两个指示布尔值的操作数,并对它们进行惰性求值。