目录
一、关系运算符
1.关系运算符:> >= < <= == !=
2.>、<、>=、<= 运算符的优先级别高于==、!=
3.>、<、>=、<=运算符只支持数值类型的数据比较,==和!=可以用于引用数据类型数据比较
4.==这才是数学中的相等,=这是赋值的意思。
二、逻辑运算
1.逻辑运算符:&(与) &&(短路与) |(或) ||(短路或) !(非)
2.与运算和或运算左右两边都需要一个布尔类型的数据或者表达式 。非运算符只需要在右边有一个布尔类型的数据或者表达式。
3.&和&&的运算规律是一样的:只有当&或者&&左右两边的结果都为true,整个&或者&&的运算结果才为true,其它的情况,运算结果都为false。
4. |和||的运算规律是一样的:只要|或者||左右两边的表达式有一个结果为true,则整个|或者||的运算结果就为true,只有当|或者||左右表达式两边同时为false,整个|或者||运算结果才为false
5.!运算符的运算规律:当!右边表达式结果为true,则!运算结果为false,当!右边表达式为false,则!运算结果为true。
三、|和||的区别跟 &和&&的区别
1、&&具有段落功能,当&&左边表达式的结果为false,则直接判断整个&&的运算结果为false,不再计算&&右边表达式的结果,从而造成&&右边表达式短路。
2、&不具有短路功能,不管&左边表达式的结果为true还是false, &右边表达式的结果都需要进行计算,计算完,再判断&的运算结果。
3、||具有短路功能,当||左边表达式的结果为true,则直接判断||运算结果为true,不再计算||右边表达式的结果,右边表达式被短路
4、 |不具有短路功能,不管|左边表达式的结果为true还是false,|右边的表达式都会进行计算,计算完后再判断|的运算结果。
四、条件运算
1、 条件运算符(三目运算符/三元运算符)
语法规则:
条件?表达式1:表达式2;
执行规律:
如果条件为true,执行表达式1。
如果条件为false,执行表达式2。
2.简单的例题
int num1 =100;
int num2 =20;
//100>20,所以最大值为100
int max =num1>num2?num1:num2;
System.out.println("最大值:"+max);
//执行表达式一最小值
int min =num1>num2?num2:num1;
System.out.println("最小值:"+min);
运行结果:
3.条件运算符的嵌套。
条件运算符的嵌套:一个条件运算符中包含另外一个或者多个条件运算符
4.三个数求最大值和最小值。
Scanner sc = new Scanner(System.in);
System.out.println("请输入第1个整数:");
int num1 = sc.nextInt();
System.out.println("请输入第2个整数:");
int num2 = sc.nextInt();
System.out.println("请输入第3个整数:");
int num3 = sc.nextInt();
//获取最大值的思想:首先比较num1和num2,得出里面的最大值,然后将这个最大值与num3进行比较,谁大谁就是最大值
int max =num1>num2?(num1>num3?num1:num3):(num2>num3?num2:num3);
System.out.println("你输入的3个整数分别是:"+num1+","+num2+","+num3+",里面的最大值是:"+max);
//关闭键盘录入
sc.close();
运行结果: