第二章 运算符
1.算术运算符
运算符:
进行特定操作的符号
表达式:
用运算符连接起来的
算术运算符包括 | |
---|
+ | 加法运算, 字符串连接运算 |
- | 减法运算 |
* | 乘法运算 |
/ | 除法运算 |
% | 取模运算, 两个数字相除取余数 |
++,– | 自增 自减运算 |
public class Demo1{
public static void main(String[] args){
20+30.sout;
}
}
对于一个整数表达式来说 除法用的是整数 整数除以整数
结果仍然是整数 只看商 不看余数
取模: % 只获取 余数
注意事项:
一旦运算当中有不同类型的数据 那么运算结果类型将会是数据类型范围大的那种
1.+的用法
四则运算的+ 3中常见用法:
1.对于数值来说就是加法
2.对于char类型来说 在计算前 被提升为int然后再运算
3.对于String来说 +代表字符串连接操作
任何数据类型与字符串连接起来都会变成字符串
main{
sout."hello"+"world";
//优先级
//"hello20"+30
//"hello2030"
//记住小括号就行
sout."hello"+20+30;
}
2.自增 自减运算符
自增运算符:++ 使一个变量涨一个数字1
自减运算符:-- 使一个变量降一个数字1
使用格式:
++n n++
使用方式:
单独使用:
++n n++ 两种情况没有任何区别
混合使用:
例如与赋值操作 或者与打印操作混合
++n n++有重大区别
如果是++n 这个变量立刻马上+1 然后拿着结果使用
如果是n++ 那么使用变量本来的数值 然后再让变量+1
public class Demo2{
public static void main(String[]args){
int a = 10;
int b = 20;
int r = ++a + b--;
a.sout;
b.sout;
}
}
注意事项:
1.只有变量使用自增 自减 常量不可以使用++ --
2.赋值运算符
赋值运算符包括 | |
---|
= | 等于号 |
+= | 加等于 |
-= | 减等于 |
*= | 乘等于 |
/= | 除等于 |
%= | 取模等 |
就是将符号右边的值 赋给左边
public class Demo3{
public static void main(String[] args){
int a = 10;
a += 5;//a = a+5;
a.sout;
int x = 10;
x%=3;
x=x%3;
x.sout;
}
}
+= a+=1 相当于 a = a+1
-= b-=4 相当于 b = b-4
%= c%=7 相当于 c = c%7
注意事项:
1.只有变量 进行赋值运算符 常量不能进行赋值
2.复合赋值运算符其中隐含了一个强制类型转换
byte n = 5;
//n=n+5;
//n=byte+int
//n=int+int
//n=int
//n=(byte)int
n+=5;
3.比较运算符
比较运算符 | |
---|
== | 比较符号两边数据是否相等, 相等结果是true |
< | 比较符号左边的数据是否小于右边的数据 如果小于结果是true |
> | 比较符号左边的数据是否大于右边的数据 如果大于结果是true |
<= | 比较符号左边的数据是否小于等于右边的数据 如果小于等于结果是true |
>= | 比较符号左边的数据是否大于等于右边的数据 如果大于等于结果是true |
!= | 不等于 如果符号两边数据不相等 结果是true |
比较运算符是两个数据之间进行比较的运算
运算结果都是布尔值 true false
注意事项:
如果进行多次判断不能连着写
4.逻辑运算符
逻辑运算符 | |
---|
&& | 与(并且) |
|| | 或(或者) |
! | 非(取反) |
逻辑运算符连接两个boolean值
短路:
&& || 具有短路效果:
如果根据左边已经可以判断得到最终结果 那么右边的代码将不再执行
从而节省一定的性能
main{
int a = 10;
//false && ... 右边代码不执行了 a仍然是10
3>4 && ++a<100.sout;
int b =20;
//true || ...右边代码不执行了 b仍然是20
3<4 || ++b<100.sout;
}
注意事项:
1.逻辑运算符只能用于boolean值
2.&& || 如果有多个条件 可以连写
5.三元运算符
一元运算符:
! ++ --
二元运算符:
+ - * / % =
三元运算符
需要三个数据才能运算的
变量名称 = 条件判断 ? 表达式a : 表达式b;
流程:
首先判断条件是否成立:
如果true 选左边表达式a
如果flase 选右边右边表达式b
public class Demo {
public static void main(String[] args){
int a = 10;
int b = 20;
int max = a>b ? a:b;
max.sout;
}
}
注意事项:
1.必须同时保证表达式a和表达式b都符合左侧数据类型的要求
2.三元运算符的结果必须使用