Java中的运算符
Java有4大类运算符:算术运算、位运算、关系运算和逻辑运算。
另外Java还定义了一些附加的运算符用于处理特殊情况。
算术运算符
算术运算符的运算数必须是数字类型。算术运算符不能用在布尔类型上,但是可以用在char类型上,因为实质上在Java中,char类型是int类型的一个子集。
Java定义的算术运算符如下:
'+' 加法
'–' 减法(一元减号)
'*' 乘法
'/' 除法
% 模运算,取余数
++ 递增运算
+= 加法赋值
–= 减法赋值
*= 乘法赋值
/= 除法赋值
%= 模运算赋值
-- 递减运算
基本算术运算符——加、减、乘、除可以对所有的数字类型操作。减运算也用作表示单个操作数的负号。
```java
public class Demo2 {
public static void main(String[] args) {int a = 1,b=2; System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println(a/b);
}
}
对整数进行“/”除法运算时,所有的余数都要被舍去。
- 模运算符% 可以用于整数和浮点数
public class Demo2 {
public static void main(String[] args) {
int a = 1,b=2;
System.out.println(a % b);
double c = 20.5,d = 0.6;
System.out.println(c % b);
System.out.println(c % d);
}
}
- Java提供特殊的算术赋值运算符,该运算符可用来将算术运算符与赋值结合起来;如+= %=
- Java的递增和递减运算符“++”和“--” ;递增或递减运算符采用前缀(prefix)或后缀(postfix)格式都是相同的。但是,当递增或递减运算符作为一个较大的表达式的一部分,如果递增或递减运算符放在其运算数前面,Java就会在获得该运算数的值之前执行相应的操作,并将其用于表达式的其他部分。如果运算符放在其运算数后面,Java就会先获得该操作数的值再执行递增或递减运算
#### 位运算符
Java定义的位运算直接对整数类型的位进行操作,这些整数类型包括long,int,short,char byte。日常用到的不多;
#### 关系运算符
- 关系运算符(relational operators)决定值和值之间的关系。产生的结果是布尔值。常用在if控制语句和各种循环语句的表达式中;
主要有以下几种:
== 等于
!= 不等于
大于
< 小于
= 大于等于
<= 小于等于运行如下代码:
public class Demo2 {
public static void main(String[] args) {
int a = 1,b=2;
System.out.println(a == b);
System.out.println(a > b);
System.out.println(a < b);
System.out.println(a != b);
System.out.println(a >= b);
System.out.println(a <= b);
}
}
#### 逻辑运算符
- 布尔逻辑运算符的运算数只能是布尔型。而且逻辑运算的结果也是布尔类型
& 逻辑与
| 逻辑或
^ 异或
|| 短路或
&& 短路与
! 逻辑反
&= 逻辑与赋值(赋值的简写形式)
|= 逻辑或赋值(赋值的简写形式)
^= 异或赋值(赋值的简写形式)
== 相等
!= 不相等
?: 三元运算符(IF-THEN-ELSE)
```
布尔逻辑运算符“&”、“ |”、“ ^”,对布尔值的运算和它们对整数位的运算一样。逻辑运算符“!”的结果表示布尔值的相反状态
?运算符
- Java提供一个特别的三元运算符(ternary)经常用于取代某个类型的if-then-else 语句。
?运算符的通用格式如下:
expression1 ? expression2 : expression3
其中,expression1是一个布尔表达式。如果expression1为真,那么expression2被求值;否则,expression3被求值。整个?表达式的值就是被求值表达式(expression2或expression3)的值。expression2和expression3是除了void以外的任何类型的表达式,且它们的类型必须相同;