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 } } }

浙公网安备 33010602011771号