Java 基础(比较运算符,逻辑运算符,三元运算符)

运算符:比较运算符

运算符 运算 范例 结果
== 相等于 4==3 false
!= 不等于 4!=3 true
< 小于 4<3 false
> 大于 4>3 true
<= 小于等于 4<=3 false
>= 大于等于 4>=3 true
instanceof 检查是否是类的对象 "Hello" instanceof String true

比较运算符的结果都是 boolean 类型,要么是 true 要么是 false。
比较运算符 "==" 不能误写成 "="

class CompareTest{
	public static void main(String[] args){
		int i = 10;
		int j = 20;
		System.out.println(i==j);     //false
		System.out.println(i=j);      //20
		
		boolean b1 = true;
		boolean b2 = false;
		System.out.println(b2==b1);   //false
		System.out.println(b2=b1);    //true
	}
}

运算符:逻辑运算符

  • &: 逻辑与
  • &&:短路与
  • |: 逻辑或
  • ||:短路或
  • ! :逻辑非
  • ^ : 逻辑异或
a b a&b a&&b a|b a||b !a a^b
true true true true true true false false
true false false false true true false true
false true false false true true true true
false false false false false false true false
class LogicTest{
	public static void main(String[] args){
		// 区分 & 与 &&
		// 相同点1:当 & 与 && 的运算结果相同
		// 相同点2:当符号左边是true时,二者都会执行符号右边的运算
		// 不同点: 当符号左边是false时,& 继续执行符号右边的运算,&&不再执行符号右边的运算。
		boolean b1 = true;
		int num1 = 10;
		if (b1 & (num1++ > 0)){
			System.out.println("Hello, beijing");    //Hello, beijing
		} else {
			System.out.println("Hello, nanjing");
		}
		System.out.println("num1 = " + num1);        //11
		
		boolean b2 = false;
		int num2 = 10;
		if (b2 && (num2++ > 0)){
			System.out.println("Hello, beijing");    //Hello, beijing
		} else {
			System.out.println("Hello, nanjing");
		}
		System.out.println("num2 = " + num2);        //10
		
		
		// 区分 | 与 ||
		// 相同点1: | 与 || 的运算结果相同
		// 相同点2: 当符号左边是false时,两者都执行符号右边的运算
		// 不同点: 当符号左边是tue时,| 继续执行符号右边的运算,||不再执行符号右边的运算。 
		boolean b3 = true;
		int num3 = 10;
		if (b3 | (num3++ > 0)){
			System.out.println("Hello, beijing");    //Hello, beijing
		} else {
			System.out.println("Hello, nanjing");
		}
		System.out.println("num3 = " + num3);        //11
		
		boolean b4 = true;
		int num4 = 10;
		if (b4 || (num4++ > 0)){
			System.out.println("Hello, beijing");    //Hello, beijing
		} else {
			System.out.println("Hello, nanjing");
		}
		System.out.println("num4 = " + num4);        //10
	}
}

运算符:三元运算符

一: 格式:(条件表达式)?表达式1:表达式2
1.条件表达式为 true ,运算后的结果是表达式1
2.条件表达式为 false ,运算后的结果是表达式2

二: 表达式1和表达式2位同种类型

三: 三元运算符与if-else的联系与区别:
1.三元运算符可简化为 if-else 语句
2.三元运算符要求必须返回一个结果
3.if后的代码块可有多个语句
4.如果程序可以使用三元运算符,又可以使用if-else结构,那么优先选择三元运算符。原因:简单,执行效率高。

class SanYuanTest {
	public static void main(String[] args){
		//获取两个整数的较大值
		int m = 12;
		int n = 5;
		
		int max = (m > n)?m : n;
		System.out.println(max);    //12
		
		double num = (m > n)? 2 : 1.0;
		System.out.println(num);    //2.0
		
		n = 12;
		String maxStr = (m > n)? "m大" : ((m == n)? "m 和 n 相等" : "n大");
		System.out.println(maxStr);  //m 和 n 相等
		
		//获取三个数的最大值
		int n1 = 12;
		int n2 = 30;
		int n3 = -43;
		
		int max1 = (n1 > n2)? n1 : n2;
		int max2 = (max1 > n3)? max1 : n3;
		System.out.println("三个数中的最大值为: " + max2);  //三个数中的最大值为: 30
		
		// 不建议
		int max3 = (((n1 > n2)? n1 : n2) > n3)? ((n1 > n2)? n1 : n2) : n3;
		System.out.println("三个数中的最大值为: " + max3);  //三个数中的最大值为: 30
		
		// 改写成 if-else
		if(m > n){
			System.out.println("m=" + m);
		}else{
			System.out.println("n=" + n);    //n=12
		}
	}
}
原文地址:https://www.cnblogs.com/klvchen/p/14183763.html