按位运算符和布尔运算符“ AND”之间的区别

And*_*lva 2 java if-statement operators bitwise-operators

可能的重复:
Java中逻辑运算符
|之间有什么区别?和|| 在Java中?

如标题所述,我需要知道&运算符和&&运算符之间的区别。谁能用简单的话帮助我。

  1. 它们之间有何不同?
  2. 在IF语句中使用哪个?

Paŭ*_*ann 5

实际上有三个“和”运算符:

  • a && b,其中a和b为布尔值:评估a。如果是,则评估b。如果为true,则结果为true。否则,结果为假。(即,如果b不a为真,则不进行评估。)
  • a & b,其中a和b为布尔值:对两个值都进行求和,进行逻辑和(即,只有两个都为true时才为true)。
  • a & b,其中a和b都是整数类型(int,long,short,char,byte):计算a和b,然后按位进行AND。

如果将第二个视为boolean一位整数类型,则可以将其视为第三个的特殊类型;

作为if-statement 的顶级条件,您可以使用前两个条件,但是第一个条件很有用。(也就是说,在很多情况下,您确实需要第二个,而第一个会做错事,但是相反的情况更常见。在大多数情况下,第一个只是快一点。)