Java学习笔记(3)
运算符(2)
赋值运算符
运算符 | 描述 |
---|---|
= | 将右操作数的值赋给左侧操作数 |
+= | 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 |
-= | 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 |
*= | 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 |
/= | 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 |
%= | 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 |
<<= | 左移位赋值运算符 |
>>= | 右移位赋值运算符 |
&= | 按位与赋值运算符 |
^= | 按位异或赋值操作符 |
|= | 按位或赋值操作符 |
例如
public class Test06 {
public static void main(String[] args) {
int a = 7;
int b = 9;
int c;
c = a+b;
System.out.println("c = a+b =" + c);
c += a;
System.out.println("c += a =" + c);
c -= a;
System.out.println("c -= a =" + c);
c *= a;
System.out.println("c *= a =" + c);
c /= a;
System.out.println("c /= a =" + c);
c %= a;
System.out.println("c %= a =" + c);
c <<= a;
System.out.println("c <<= a =" + c);
c >>= a;
System.out.println("c >>= a =" + c);
c &= a;
System.out.println("c &= a =" + c);
c ^= a;
System.out.println("c ^= a =" + c);
c |= a;
System.out.println("c |= a =" + c);
}
}
运行结果如下
c = a+b =16
c += a =23
c -= a =16
c *= a =112
c /= a =16
c %= a =2
c <<= a =256
c >>= a =2
c &= a =2
c ^= a =5
c |= a =7
解析
c = a+b =16
将a+b
的值赋给c
c += a =23
等价于c = c+a
c -= a =16
等价于c = c-a
c *= a =16
等价于c = c*a
c /= a =16
等价于c = c/a
c %= a =16
等价于c = c%a
c <<= a =16
等价于c = c<<a
c >>= a =16
等价于c = c>>a
c &= a =16
等价于c = c&a
c ^= a =16
等价于c = c^a
c |= a =16
等价于c = c|a
条件运算符
variable x = (expression) ? value if true : value if false
例如
public class Test07 {
public static void main(String[] args) {
int score = 70;
//如果score >= 60成立,则grade为及格,否则为不及格
String grade = (score >= 60) ? "及格":"不及格";
System.out.println("grade = " + grade);
int a = 7;
int b = 9;
int c;
//如果 a>b 成立,则c=11,否则c=22
c = (a > b) ? 11 : 22;
System.out.println("Value of c =" + c);
}
}
运行结果如下
grade = 及格
Value of c =22
运算符优先级
下表中优先级上行优先于下行
运算符说明 | Java运算符 |
---|---|
分隔符 | . [] () {} , ; |
单元运算符 | ++ -- ~ ! |
强制类型转换运算符 | (type) |
乘法、除法、求余 | * / % |
加法、减法 | + - |
移位运算符 | << >> >>> |
关系运算符 | < <= > >= instanceof |
等价运算符 | == != |
换位与 | & |
换位异或 | ^ |
换位或 | | |
条件与 | && |
条件或 | || |
条件运算符 | ?: |
赋值运算符 | = += -= *= /= &= |= ^= %= <<= >>= >>>= |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!