1.基操——运算符
int a = 10;
int b = 3;
System.out.println(a+b);//13
System.out.println(a-b);//7
System.out.println(a*b);//30
System.out.println(a/b);//3
System.out.println(a%b);//1
ps:
1.除法可能涉及小数,因此建议计算除法时将其中一个变量类型改为float
2.除数不能为0
2.关系运算符
int a = 1;
int b = 2;
System.out.println(a == b);//false
System.out.println(a != b);//true
System.out.println(a > b);//false
System.out.println(a < b);//true
System.out.println(a >= b);//false
System.out.println(a <= b);//true
ps:
关系运算符的返回值都是布尔类型。
3.逻辑运算符
①逻辑或&&
表达式1&&表达式2 【 同真为真】
int a = 10;
int b = 20;
int c = 30;
System.out.println(a < b && b > c)//false
输出结果为false
②逻辑与||
表达式1 | | 表达式2 【一真为真】
int a = 10;
int b = 20;
int c = 30;
System.out.println(a < b || b > c)//true
输出结果为true
逻辑&&与逻辑||的短路求值
System.out.println(10 > 20 && 10/0 == 0);//false
System.out.println(10 < 20 || 10/0 == 0);//true
逻辑&&运算中,&&前的表达式为false,则直接输出false,不会进行后续判断。
逻辑 | | 运算中, | | 前的表达式为true, 则直接输出true, 不会进行后续判断。
③逻辑非!
int a = 10;
int b = 20;
System.out.println(! a < b)//false
结果为true输出false,结果为false输出true。
4.位运算符
①按位与&
int a = 10;//01010
int b = 20;//10100
System.out.println( a & b)//00000
②按位或|
int a = 10;//01010
int b = 20;//10100
System.out.println( a | b)//11110
ps:
当按位与/或的两边操作数是布尔表达式时,其操作效果和&& 、 ||效果相同,但按位与/或不支持短路求值。
5.移位运算
①左移<<(左移相当于乘2)
int a = 0x10;
System.out.println("%x/n",a << 1);//20
ps:
1.左移即最左侧的数字不要,右侧补零
2.%x表示按照十六进制
②右移>>(右移相当于除2)
int a = 0x10;
System.out.println("%x/n",a >> 1);//8
ps:
右移即最右侧不要,最前补符号位
③无符号右移>>>
int a = 0xffffffff;
System.out.println("%x/n",a >>> 1);//7fffffff
ps:
最右侧无论符号位数字为什么,统统补0
6.条件运算符 / 三目运算符
(表达式1?表达式2:表达式3)
表达式1为真则执行表达式2,否则执行表达式3
int a = 10;
int b = 20;
int max = a > b ? a : b;//20
7.运算优先级
int a = 10;
int b = 20;
int c = (a+b)*a;
System.out.println(c)//300
先计算()内的操作。