运算符有哪些?
- 算术运算符:算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。
设:
整数变量A的值为10——int A = 10
;
整数变量B的值为15——int B = 15
;
( + )加法——相加运算符两侧的值 例:A + B 等于 25
( - )减法——左操作数减去右操作数 例:A - B 等于 -5
( * )乘法——相乘操作符两侧的值 例:A * B 等于 150
( / )除法——左操作数除以右操作数 例:A / B 等于 0(因为A和B都为整数,所有所得的值也为整数)
( % )取模——左操作数除以右操作数的余数 例:B % A 等于 5
( ++ )自增——操作数的值增加1 例:A++或++A 等于 11
( – )自减——操作数的值减少1 例:A--或--A 等于 9
注:A++ 与 ++A(A- -与- -A)的区别:
A++(A- -) :先输出后自增(减),如下
System.out.println(A++);
输出:10
输出后A的值:11
System.out.println(A--);
输出:10
输出后A的值:9
++A(- -A):先自增(减)再输出
System.out.println(++A);
输出:11
输出后A的值:11
System.out.println(--A);
输出:9
输出后A的值:9
- 关系运算符
设:
整数变量A的值为10——int A = 10
;
整数变量B的值为15——int B = 15
;
( == )检查如果两个操作数的值是否相等,如果相等,则条件为真。例:(A == B)为假
( != )检查如果两个操作数的值是否相等,如果值不相等,则条件为真。例:(A != B)为真
( > )检查左操作数的值是否大于右操作数的值,如果大于,那么条件为真。例:(A > B) 为假
( < )检查左操作数的值是否小于右操作数的值,如果小于,那么条件为真。例:(A < B)为真
( >= )检查左操作数的值是否大于或等于右操作数的值,如果大于或等于,那么条件为真。例:(A >= B)为假
( <= )检查左操作数的值是否小于或等于右操作数的值,如果小于或等于,那么条件为真。例:(A <= B)为真
- 逻辑运算符
设:
布尔变量A为真——boolean A = true
;
布尔变量B为假——boolean B = false
;
( && )逻辑与——当两个操作数都为真,条件才为真 例:(A && B)为假
( || )逻辑或——当两个操作数任何一个为真,条件为真 例: (A | | B)为真
( ! )逻辑非——反转操作数的逻辑状态。如果条件为true,则逻辑非的值为false。例:(!A)为假
& 与 && (| 与 ||)的区别:
&&( || ):只要第一个条件不满足,后面条件就不再判断
&( | ):对两个条件都进行判断
例:
(B && A):因为B为假,所有不用判断A,即可判断为假;
(A || B):因为A为真,所有不用判断B,即可判断为真;
(B & A):因为B为假,A为真,所以判断为假;
(A | B):因为A为真,B为假,所以判断为真;
- 位运算符:Java定义了位运算符,应用于整数类型
int
,长整型long
,短整型short
,字符型char
,和字节型byte
等类型。位运算符作用在所有的位上,并且按位运算。
设:
A的值为51——二进制格式:A = 0011 0011
B的值为14——二进制格式:B = 0000 1110
( & )对应位都是1,则结果为1,否则为0 例:(A & B)得到 0000 0010 即值为2
( | )相对应位都是 0,则结果为 0,否则为 1 例:(A | B)得到 0011 1111 即值为63
( ^ )相对应位值相同,则结果为0,否则为1 例:(A ^ B)得到 0011 1101 即值为61
( ~ )按位取反运算符,每一位都取反,即0变成1,1变成0 例:( ~A )得到 1100 1100 即值为-52
( << )按位左移运算符——左操作数按位左移右操作数指定的位数 例:(A << 2)得到 1100 1100 即值为204
( >> )按位右移运算符——左操作数按位右移右操作数指定的位数 例:(A >> 2)得到 1100 即值为12
( >>> )按位右移补零操作符——左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充 例:(A>>>2)得到0000 1100 即值为12
- 赋值运算符
( = )赋值运算符,将右操作数的值赋给左侧操作数 例:(C = A + B)即A + B 得到的值赋给C
( += )加和赋值操作符,将左操作数和右操作数相加赋值给左操作数 例:C += A 即 C = C + A
( -= )减和赋值操作符,将左操作数和右操作数相减赋值给左操作数 例:C -= A 即 C = C - A
( *= )乘和赋值操作符,将左操作数和右操作数相乘赋值给左操作数 例:C *= A 即 C = C * A
( /= )除和赋值操作符,将左操作数和右操作数相除赋值给左操作数 例:C /= A 即 C = C / A
( %= )取模和赋值操作符,将左操作数和右操作数取模后赋值给左操作 数 例:C %= A 即 C = C % A
( <<= )左移位赋值运算符 例:C <<= A 即 C = C <<A
( >>= )右移位赋值运算符 例:C >>= A 即 C = C >> A
( &= )按位与赋值运算符 例:C &= A 即 C = C & A
( ^= )按位异或赋值操作符 例:C ^= A 即 C = C ^ A
( |= )按位或赋值操作符 例:C |= A 即 C = C | A
- 条件运算符:条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符主要是决定哪个值应该赋值给变量。
格式: 变量 = (条件)? 值一 :值二
如果条件为真,则选择值一,如果条件为假,则选择值二
例:
设:
整数变量Xint X;
整数变量Y的值为5int Y = 5;
问:X = (Y > 0)? 10 :20;
答:因为Y>0成立,所以X = 10;
- 其他运算符