运算符
运算符
1. 算术运算符
算术运算符用于执行基本的数学运算,包括:
- 加法(+):两数相加。
- 减法(-):两数相减。
- 乘法(*):两数相乘。
- 除法(/):两数相除,结果为浮点数或整数(取决于操作数的类型)。如果两个操作数都是整数,则结果也是整数,且向下取整。
- 取模(%):两数取余,结果为两数相除后的余数。注意,%运算符也可以对double类型操作,但通常用于整型。
- 增量运算符(+=、-=、*=、/=、%=):将变量与另一个值进行算术运算后,将结果赋值给原变量。
- 自增(++)和自减(--):用于增加或减少变量的值。有前缀和后缀两种形式,前缀形式先增加/减少再返回新值,后缀形式先返回原值再增加/减少。
2. 赋值运算符
赋值运算符用于将值赋给变量,包括:
- 基本赋值运算符(=):将右侧的值赋给左侧的变量。
- 复合赋值运算符(+=、-=、*=、/=、%=等):先执行算术运算,然后将结果赋给左侧的变量。
3. 关系运算符(比较运算符)
关系运算符用于比较两个值的关系,包括:
- 等于(==):比较两个值是否相等。
- 不等于(!=):比较两个值是否不相等。
- 大于(>):比较左侧值是否大于右侧值。
- 小于(<):比较左侧值是否小于右侧值。
- 大于等于(>=):比较左侧值是否大于等于右侧值。
- 小于等于(<=):比较左侧值是否小于等于右侧值。
4. 逻辑运算符
逻辑运算符用于执行逻辑运算,包括:
- 逻辑与(&&):两个操作数都为true时,结果为true;否则为false。注意,&&是短路运算符,如果第一个操作数为false,则不会计算第二个操作数。
- 逻辑或(||):两个操作数中只要有一个为true,结果为true;都为false时,结果为false。注意,||也是短路运算符,如果第一个操作数为true,则不会计算第二个操作数。
- 逻辑非(!):对操作数的布尔值进行取反。
此外,Java还提供了按位与(&)、按位或(|)、按位异或(^)等逻辑运算符,它们基于二进制位进行操作。
5. 位运算符
位运算符用于执行位级别的操作,包括:
- 按位与(&):对两个操作数的每个位执行与操作,只有两个操作数的对应位都为1时,结果位才为1。
- 按位或(|):对两个操作数的每个位执行或操作,只要两个操作数的对应位中有一个为1,结果位就为1。
- 按位异或(^):对两个操作数的每个位执行异或操作,只有两个操作数的对应位不相同时,结果位才为1。
- 按位取反(~):对单个操作数的每个位执行非操作,将0变为1,将1变为0。
- 左移(<<):将操作数的二进制位向左移动指定的位数,右侧用0填充。
- 右移(>>):将操作数的二进制位向右移动指定的位数,左侧用符号位填充(即如果原数为正数,则用0填充;如果原数为负数,则用1填充)。
- 无符号右移(>>>):将操作数的二进制位向右移动指定的位数,左侧总是用0填充。
6. 条件运算符(三元运算符)
条件运算符是唯一的三元运算符,用于根据条件选择两个值中的一个,格式为:(条件表达式)? 值1 : 值2
。如果条件表达式为真,则结果为值1;否则为值2。
示例
int score = 60;
String result = score >= 60 ? "及格" : "不及格";
System.out.println(result); // 输出: 及格
在这个例子中,如果score
的值大于等于60,result
将被赋值为字符串"及格";否则,result
将被赋值为字符串"不及格"。