关系运算符
求值结果为布尔型
- “==”检测是否相等,如
3 == 7
为false - “!=”检测是否不等,如
3 != 7
为true - "<“小于,”>“大于,”<=“小于等于,”>="大于等于
布尔运算符
运算因子为布尔型,结果为布尔型
- “&&” 逻辑与
- “||” 逻辑或
- “!” 逻辑非
与:都真为真, 或:一真为真, 非:真变假假变真
示例
关系运算
public class TestOperator {
public static void main(String[] args) {
int 1 =3;
int i2 = i++;
System.out.println("i == "+i);//4
System.out.println("i2 == " + i2);//3
System.out.println("i == i2?"+(i == i2));//false
}
}
public class TestOperator {
public static void main(String[] args) {
int 1 =3;
int i2 = i++;
System.out.println("i == "+i);//4
System.out.println("i2 == " + i2);//3
System.out.println("i != i2?"+(i != i2));//true
}
}
逻辑运算
public class TestOperator {
public static void main(String[] args) {
int 1 =3;
double j = 2;
double j1 = 2.3;
int i2 = i++;
System.out.println("i == "+i);//4
System.out.println("i2 == " + i2);//3
System.out.println("i != i2 && j1 > j"+ ((i != i2) && (j1 > j)));//true && true = true
//注意优先级,(i != i2) && (j1 > j)还需再加一个括号
System.out.println("i != i2 || j1 < j"+ ((i != i2) || (j1 < j)));//true || false = true
System.out.println("!(i != i2)"+ (!(i != i2));//!true = false
}
}
布尔运算符的短路
- &&和| |是按照短路的方式求值的,如果第一个操作数已经能够确定表达式的值,第二个操作数就不必计算了
false && ? = false
true || ? = true
例题
public class TestOperator {
public static void main(String[] args) {
int 1 =3;
double j = 2;
boolean result = (i < j) && (++j == 3);
//j 的值是多少?
System.out.println("j的值为: "+j);// 2.0
}
}
注:此处 “++j == 3”已经由于“i < j”为false而被短路,不运行
public class TestOperator {
public static void main(String[] args) {
int 1 =3;
double j = 2;
boolean result = (++j == 3) && (i < j);
//j 的值是多少?
System.out.println("j的值为: "+j);// 3.0
}
}
注:此时++j == 3要运行