Java学习笔记四——运算符
算术运算符
加减乘除(+、-、*、/)就不说了。
求余运算符%
描述:第一个操作数除以第二个操作数,得到一个整除的结果后剩下的值就是余数
注意:求余预算的结果不一定总是整数,当操作数是浮点数时,结果可能是小数。
double a = 5.2; double b = 3.1; double mod = a%b; System.out.println(mod);//值为2.1
自增运算符++
自增运算符++有两个要点:
- ++是单目运算符只能操作一个操作数
- ++只能操作在数值型(整数、浮点型)的变量上
自增运算符有两种用法:
- 在操作数前面,表示先将操作数加1,再参与其它运算
- 在操作数后面,表示先参与其它运算,最后将操作数加1
int a = 1; a++; System.out.println(a);//值为2 double b = 5.2; b++; System.out.println(b);//值为6.2 int c = ++a*4; System.out.println(c); //值为12,因为a本为2,先加1然后乘4 int d = a++*4; System.out.println(d); //值为12,因为a本为3,先乘4,赋值给d,a再加1
自减运算符--
用法和自增运算符差不多,只是将操作数减1
double b =1.2; b--; System.out.println(b); //0.19999999999999996,因为Java本身的double不精确 int a = 5; int c = --a*5; System.out.println(c); //20 int d = c--*5; System.out.println(d); //100
位运算符
位运算符是对操作数的二进制数据进行运算的,所以要得到正确结果,得先将数据化成二进制才明白。
Java中有7中位运算符:
- &:按位与,双目运算符,对两个操作数的二进制进行运算,当两位同时为1才返回1
- |:按位或,双目运算符只要有一位为1,即返回1
- ~:按位非,单目运算符,将操作数的二进制数的每个位取反,即1变0,0变1
- ^:按位异或,双目运算符,当两位相同则返回0,不同返回1
- <<:左移运算符,单目运算符,移n位,相当于乘以2n
- >>:右移运算符,单目运算符,移n位,相当于除以2n
- >>>:无符号右移,单目运算符
int a = 8; int c = a<<2; System.out.println(a); //8,左移和右移对变量本身不改变 System.out.println(c); //32,相当于乘以2的2次方
比较运算符
比较运算符用于判断两个变量或常亮的大小,比较结果是一个布尔值(true或false),Java中的比较运算符:
- >:大于
- >=:大于等于
- <:小于
- <=:小于等于
- ==:等于
- !=:不等于
逻辑运算符
逻辑运算符用于操作两个布尔值的变量或常量,结果是布尔值,逻辑运算符主要有6种:
- &&:与,双目运算符,两个操作数都是true时,才为true,否则为false
- &:不短路与,当操作数是布尔值时。作用与&&相同,但不会短路
- ||:或,双目运算符,只要操作数中有一个是true,则返回true
- |:不短路或,当操作数是布尔值时。作用与||相同,但不会短路
- !:非,单目操作数,取反
- ^:异或,双目操作数,当两个操作数不同时返回true,否则返回false
三目运算符
Java中只有一个三目运算符: ? : 。格式如下:
result = (expression) ? result1 : result2;
当表达式expression的结果为true时,返回result1,否则返回result2。
int a = 5; int b = 3; int c = a > b ? a:b; System.out.println(c); // 5,若a>b为true,返回a,否则返回b