五、赋值运算符和关系运算符
1. 赋值运算符
① 分类
符号 | 作用 | 说明 |
= | 赋值 | int a=10,将10赋值给变量a |
+= | 加后赋值 | a+=b,将a+b的值给a |
-= | 减后赋值 | a-=b,将a-b的值给a |
*= | 乘后赋值 | a*=b,将a*b的值给a |
/= | 除后赋值 | a/=b,将a÷b的商给a |
%= | 取余后赋值 | a%=b,将a÷b的余数给a |
② 样例
package com.itheima.assigningoperator; public class AssigningoperatorDemo1{ public static void main(){ //+= //规则:将左边和右边进行相加,然后再把结果赋值给左边 int a = 10; int b = 20; //把a+b,再把结果赋值给左边的变量a a += b; //等同于 a = (int)(a + b); System.out.println(a);//30 System.out.println(b);//20 //细节: //+=,-=,*=,/=,%= 底层都隐藏了一个强制类型转换 short s = 1; //把左边和右边进行相加,得到结果2,再赋值给左边的变量 s += 1; //等同于:s = (short)(s + 1); System.out.println(s);//2 } }
2. 关系运算符
① 分类
符号 | 说明 |
== | a==b,判断a和b的值是否相等,成立为true,不成立为false |
!= | a!=b,判断a和b的值是否不相等,成立为true,不成立为false |
> | a>b,判断a是否大于b,成立为true,不成立为false |
>= | a>=b,判断a是否大于等于b,成立为true,不成立为false |
< | a>b,判断a是否小于b,成立为true,不成立为false |
<= | a<=b,判断a是否小于等于b,成立为true,不成立为false |
注意:关系运算符的结果都是boolean类型,要么是true,要么是false
② 样例
package com.itheima.assigningoperator; public class AssigningoperatorDemo2{ public static void main(){ //1.== 判断左右两边是否相等 int a = 10; int b = 10; int c = 20; System.out.println(a == b);//true System.out.println(a == c);//false } }
3. 练习
package com.itheima.test; import java.util.Scanner; public class Test2{ public static void main(String[] args){ /* 需求: 您和您的约会对象正试图在餐厅获得一张桌子。 键盘录入两个整数,表示你和你约会对象衣服的时髦度。(手动录入0~10之间的整数,不能录入其他) 如果你的时髦度大于你对象的时髦度,相亲就成功,输出true,否则输出false。 */ //1.键盘录入两个整数表示衣服的时髦度 Scanner sc = new Scanner(System.in); System.out.println("请输入我们自己的衣服时髦度"); int myFashion = sc.nextInt(); System.out.println("请输入相亲对象的衣服时髦度"); int girlFashion = sc.nextInt(); //2.把我衣服的时髦度跟女孩的时髦度进行对比就可以了 boolean result = myFashion > girlFashion; //3. 打印结果 System.out.println(result); } }
六、四种逻辑运算符
1. 分类
符号 | 作用 | 说明 |
& | 逻辑与(且) | 并且,两边都为真,结果才是真 |
| | 逻辑或 | 或者,两边都为假,结果才是假 |
^ | 逻辑异或 | 相同为false,不同为true |
! | 逻辑非 | 取反 |
2. 样例
package com.itheima.logicoperator; public class LogicoperatorDemo1{ public static void main(String[] args){ //1.& 并且 //两边都为真,结果才是真 System.out.println(true & true);//true System.out.println(false & true);//false System.out.println(true & false);//false System.out.println(false & false);//false //2.| 或者 //两边都为假,结果才是假 System.out.println(true | true);//true System.out.println(false | true);//true System.out.println(true | false);//true System.out.println(false | false);//false } }
package com.itheima.logicoperator; public class LogicoperatorDemo2{ public static void main(String[] args){ // ^ 异或 //相同为false,不同为true System.out.println(true ^ true);//false System.out.println(false ^ true);//true System.out.println(true ^ false);//true System.out.println(false ^ false);//false // ! 逻辑非 取反 //提示: //取反的感叹号不要写多次,要么不写,要么只写一次 System.out.println(!false);//true System.out.println(!true);//false } }
七、短路逻辑运算符
1. 分类
符号 | 作用 | 说明 |
&& | 短路与 | 结果和 & 相同,但是有短路效果 |
|| | 短路或 | 结果和 | 相同,但是有短路效果 |
注:& | ,无论左边 true false,右边都要执行
&& || ,如果左边能确定整个表达式的结果,右边不执行
2. 样例
package com.itheima.logicoperator; public class LogicoperatorDemo3{ public static void main(String[] args){ //1.&& //运行结果跟单个&是一样的 //表示两边都为真,结果才是真 System.out.println(true && true);//true System.out.println(false && true);//false System.out.println(true && false);//false System.out.println(false && false);//false //2.|| //运行结果跟单个 | 是一样的 //表示两边都为假,结果才是假 System.out.println(true || true);//true System.out.println(false || true);//true System.out.println(true || false);//true System.out.println(false || false);//false //3.短路逻辑运算符具有短路效果 //简单理解:当左边的表达式能确定最终的结果,那么右边就不会参与运行了 int a = 10; int b = 10; boolean result = ++a < 5 && ++b <5; System.out.println(result);//false System.out.println(a);//11 System.out.println(b);//10 } }
3. 练习
package com.itheima.test; public class Test3{ public static void main(String[] args){ /* 数字6是一个真正伟大的数字,键盘录入两个整数 如果其中一个为6,最终结果输出true 如果它们的和为6的倍数,最终结果输出true 其他情况都是false */ //分析: //1.键盘录入两个整数 // 变量a 变量b //2.a == 6 || b == 6 || (a + b) % 6 == 0 //如果满足其中一个,那么就可以输出true //键盘录入两个整数 Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数"); int number1 = sc.nextInt(); System.out.println("请输入第二个整数"); int number2 = sc.nextInt(); //可以短路逻辑运算符去连接三个判断 boolean result = number1 == 6 || number2 == 6 || (number1 + number2) % 6 == 0; System.out.println(result); } }
八、三元运算符
1. 格式
关系表达式 ? 表达式1 : 表达式2;
int max = a > b ? a : b;
2. 计算规则
① 首先计算关系表达式的值
② 如果值为true,表达式1的值就是运算结果
③ 如果值为false,表达式2的值就是运算结果
3. 样例
package com.itheima.ternaryoperator; public class TernaryoperatorDemo1{ public static void main(String[] args){ //需求:使用三元运算符,获取两个数的较大值 //分析: //1.定义两个变量记录两个整数 int number1 = 10; int number2 = 20; //2.使用三元运算符获取两个整数的较大值 //格式:关系表达式 ? 表达式1 : 表达式2; //整个三元运算符的结果必须要被使用 int max = number1 > number2 ? number1 : number2; System.out.println(max); System.out.println(number1 > number2 ? number1 : number2); } }
4. 练习
package com.itheima.test; import java.util.Scanner; public class Test4{ public static void main(String[] args){ /* 需求:动物园里有两只老虎,体重分别通过键盘录入获得 请用程序实现判断两只老虎的体重是否相同 */ //分析: //1.键盘录入两只老虎的体重 Scanner sc = new Scanner(System.in); System.out.println("请输入第一只老虎的体重"); int weight1 = sc.nextInt(); System.out.println("请输入第二只老虎的体重"); int weight2 = sc.nextInt(); //2.比较 //true false //相同 不同 //System.out.println(weight1 == weight2); String result = weight1 == weight2 ? "相同" : "不同"; System.out.println(result); } }
package com.itheima.test; import java.util.Scanner; public class Test5{ public static void main(String[] args){ /* 需求:一座寺庙里住着三个和尚,已知他们的身高分别为150cm、200cm、165cm 请用程序实现获取这三个和尚的最高身高 */ //1.定义三个变量记录三个和尚的身高 int height1 = 150; int height2 = 210; int height3 = 165; //2.拿着第一个和尚和第二个和尚进行比较 //再拿着结果和第三个和尚进行比较即可 int temp = height1 > height2 ? height1 : height2; int max = temp > height3 ? temp : height; //ctrl + alt + L 自动格式化代码 System.out.println(max); } }
⭐记住 () 即可