自增自减运算符:
符号 | 作用 | 说明 |
++ | 加 | 变量值加1 |
-- | 减 | 变量值减1 |
注意事项:
++和--既可以放在变量的前面,也可以放在变量的后面
注意事项:尽量单独写一行。
![](https://i-blog.csdnimg.cn/blog_migrate/4e22ad062e880a7686b71222ccd1c620.png)
这两个b的值是不一样的,但一般都是不会这么写,++和--单独写一行。
public class zizengzejianyunsuanfu {
public static void main(String[] args) {
int x = 10;
int y = x++;//先用后加
int z = ++x;//先加后用
System.out.println("x:" + x);//x:12
System.out.println("y:" + y);//y:10
System.out.println("z:" + z);//z:12
}
}
(以上)自行理解.
赋值运算符
![](https://i-blog.csdnimg.cn/blog_migrate/c8f5327f2e070585626213b546134c8d.png)
*细节:
short s = 1;
s += 1;
System.out.println(s);
+=,-=,*=,/=,%=底层都隐藏了一个强制类型转换。
这里等同于: s = (short) (s+1);
关系运算符
关系运算符也叫比较运算符。
![](https://i-blog.csdnimg.cn/blog_migrate/aa71c1027b3ce6165f7db593db46a3b5.png)
注意事项:关系运算符的结果都是boolean类型,要么是true,要么是false.
练习
![](https://i-blog.csdnimg.cn/blog_migrate/14dd03970e774d8e8d84e3e37f77b13d.png)
import java.util.Scanner;
public class yuehui {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的时髦程度:");
int myself = sc.nextInt();
System.out.println("请输入您约会对象的时髦程度:");
int her = sc.nextInt();
if(myself > her){
System.out.println("约会成功");
}
else{
System.out.println("约会失败");
}
}
}
逻辑运算符
符号 | 作用 | 说明 |
& | 逻辑与(且) | 并且,两边都为真,结果才是真 |
| | 逻辑或 | 或者,两边都为假,结果才是假 |
^ | 逻辑异或 | 相同为false,不同为true |
! | 逻辑非 | 取反 |
短路逻辑运算符
其中的&&和||,要比&和|更为高效。
&&: 如果前者为假,便不会执行后者。结果为假。
|| : 如果前者为真,便不会执行后者,结果为真。
public class duanluluojiyunsuanfu {
public static void main(String[] args) {
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
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/e8f8562f350d5efcfa4dfb18c8b1a40e.png)
import java.util.Scanner;
public class shuzi6 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请依次输入两个整数:");
int a = sc.nextInt();
int b = sc.nextInt();
boolean result = (a==6 || b==6) || (a+b)%6==0;
System.out.println(result);
}
}
三元运算符和运算符的优先级
作用:可以进行判断,根据判断的结果得到不同的内容。
三元表达式的格式:
关系表达式 ? 表达式1 : 表达式2;整个三元运算符的结果必须要被使用(前面一般要有赋值,或者被输出。)
范例:求两个数的较大值。
int max = a > b ? a : b;
问题,键盘输入两个整数,输出其中的较大值。
import java.util.Scanner;
public class Compare {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请依次输入要比较的两个整数:");
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a>b ? a : b);
}
}
问题:
![](https://i-blog.csdnimg.cn/blog_migrate/d4510c90d2c78c9d77979dcf4697252e.png)
解答:
public class sangeheshang {
public static void main(String[] args) {
int a =150;int b = 210;int c = 165;
System.out.print("这三个和尚他们最高的身高是:");
int temp = a > b ? a : b;
System.out.println((temp > c ? temp : c) + "cm");//先运算三元表达式
}
}
这三个和尚他们最高的身高是:210cm
运算符的优先级:
小括号最优先运算,需要时相加。