运算符
一、算术运算符
1、基本四则运算符 加+、减-、乘*、除/、模%
int a = 20;
int b = 10;
System.out.println(a+b); // 30,都是二元运算符,使用时必须要有左右两个操作数
System.out.println(a-b); // 10
System.out.println(a*b); // 200
System.out.println(a/b); // 2 ,int / int 结果还是int类型,而且会向下取整
System.out.println(a%b); // 0 --->模运算相当于数学中除法的余数,做除法和取模时,右操作数不能为0,否则会造成运行时错误(异常exception)
2、增量运算符+=、-=、*=、%=
int a = 1;
a += 2; //相当于a = a + 2
System.out.println(a);//输出3
a -= 1; //相当于a = a - 1
System.out.println(a);//输出2
a *= 3; //相当于a = a * 3
System.out.println(a);//输出6
a /= 3; //相当于a = a / 3
System.out.println(a);//输出2
a %= 3; //相当于a = a % 2
System.out.println(a);//输出2
//左边只能为变量,只有变量才能使用该运算符,常量不能使用
3、自增/自减运算符++、-- (++是给变量的值+1,- -是给变量的值-1)
int a = 1;
a++; //后置++表示给a的值加1,此时a的值为2
System.out.println(a++); //注意:后置++是先使用变量原来值,表示式结束时给变量+1,因此输出2
System.out.println(a); //输出3++a; //前置++表示给a的值加1
System.out.println(++a); //注意:前置++是先给变量+1,然后使用变量中的值,因此输出5
System.out.println(a); //输出5
二、关系运算符
1、主要包括:==、!=、<、>、<=、>=
2、其运算结果都是布尔类型:true/false
int a = 10;
int b = 20; //注意:在Java中=表示赋值,要与数学中的含义区分
//在Java中==表示相等
System.out.println(a==b); // false
System.out.println(a!=b); // true
System.out.println(a<b); // true
System.out.println(a>b); // false
System.out.println(a<=b); // true
System.out.println(a>=b); // false
三、逻辑运算符(包括三个:与&&、 或||、非 !,运算结果都是布尔类型 :true / false)
1、与&& (同真 异假)
语法规则:表达式1 && 表达式2(左右表达式必须是Boolean类型 )
int a = 1;
int b = 2;
System.out.println(a==1&&b==2);//左为真且 右为真 则结果为真
System.out.println(a==1&&b>100);//左为真但 右为假 则结果为假
System.out.println(a>100&&b==2);//左为假但 右为真 则结果为假
System.out.println(a>100&&b>100);//左为假且 右为假 则结果为假
2、或||(见真即为真)
语法规则:表达式1 || 表达式2,(左右表达式必须都是Boolean类型的结果)
int a = 1;
int b = 2;
System.out.println(a==1||b==2); //左为真且 右为真 则结果为真
System.out.println(a==1||b>100); //左为真但 右为假 则结果也为真
System.out.println(a>100||b==2); //左为假但 右为真 则结果也为假
System.out.println(a>100||b>100);//左为假且 右为假 则结果为假
3、非 !语法规则:!表达式 真变假,假变真
int a = 1;
System.out.println(!(a==1));// a == 1为true,取个非就是false
System.out.println(!(a!=1));// a != 1为false,取个非就是true
四、位运算符 (比特位参与的与或非)
1、按位 与&(遇2个1为1)
int a = 10; // ob 10 --> 01010
int b = 20; // ob 20 --> 10100
System.out.println(a&b); // 结果 00000 --> 0
2、按位 或| (见1为1)
int a = 10; // ob 10 --> 01010
int b = 20; // ob 20 --> 10100
System.out.println(a|b); //结果 11110 --> 30
3、按位 取反~ (1转0 , 0转1)
4、按位 异或^ (相同1 相异0)
五、移位运算符
1、左移<< ,左移一位,相当于原数字(乘)2,左移n位,相当于原数字2的n次方
2、右移>>,右移一位,相当于原数字(除)/2,右移n位,相当于原数字/2的n次方
3、无符号右移>>> : 最右侧位不要了,最左侧位补0
六、条件运算符
格式 ,条件运算符只有一个:
表达式1 ? 表达式2 : 表达式3
当表达式1的值为true时, 整个表达式的值为 表达式2的值;
当表达式1的值为false时, 整个表达式的值为 表达式3的值.
也是Java中唯一的一个三目运算符,是条件判断语句的简化写法.
//求两个整数的最大值
int a = 10;
int b = 20;
int max = a>b?a:b; //a > b 为true,故结果为a,10
注意:
1、表达式2和表达式3的结果要是同类型的,除非能发生类型隐式类型转换
2、表达式不能单独存在,其产生的结果必须要被使用。
(a>b?a:b;//报错:Error:(15, 14) java:不是语句)