我有这段代码
import java.io.*; import java.util.*;
import javax.xml.parsers.*; import org.xml.sax.InputSource;
class TeamPlayer {
private int pulse;
TeamPlayer() { pulse= -10; }
TeamPlayer(int v0) {pulse= v0 +5;}
public int m(int v) { return 31%3 ;}
public int get_pulse() { return 1* pulse;}
}
class GoalKeeper extends TeamPlayer {
GoalKeeper() { stress -=8; }
public static int stress=3;
public int m(int v) { return (v & 3) + 15; }
}
但我无法理解“&”手段。它与“&&”不同吗?
答案 0 :(得分:10)
按位“和”运算符。链接:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
编辑更具体的解释:它用于组合两个数字,其中二进制表示中的位置为1,如果两个数字都为1,则:
0101 & 0000 = 0000
0101 & 1111 = 0101
0101 & 0100 = 0100
...and so on...
答案 1 :(得分:0)
它是执行二进制操作的运算符 例如:
1001 //9
& 1110 //14
---------
1000 //8
如果两个操作数均为1,则返回1.
...是否与"&&"
不同是的。
&安培;&安培;是一个逻辑运算符,它检查两个(或更多)运算符,如果全部都为真,则返回true。
他们有类似的工作,除了&&如果第一个参数足以告诉结果为假,则不会检查第二个参数。
答案 2 :(得分:0)
考虑我有表达式,
int a=0;
if (a!=0 && a!=1)
{
//some expression(s)
}
当它检查第一个条件并发现它为假时,它不会检查其他条件并自动返回false,因为只有在所有条件都为真时才返回true。 但是在'&'的情况下,它也会检查第二个条件,尽管第一个条件是假的。