运算符
算数运算符
运算符:对常量或者变量进行操作的符号
表达式:用运算符把常量或者变量连接起来符合Java语法的式子就可以成为表达式
eg: int a = 10; int b = 20; int c = a+b;
+:是运算符;
a+b:是表达式;由于+是算术运算符,所以叫做算术表达式。
符号 | 作用+说明 |
---|---|
+ | 加 |
- | 减 |
* | 乘、× |
/ | 除、÷(取商) |
% | 取余、两个数据做除法的余数 |
注: | 整数操作只能得到整数,浮点数参与才能得到小数 |
字符串的“+”操作
public class OperatorDemo03{
public static void main (String[] args){
system.out.println("it" + "heima");
system.out.println("黑马" + "6" + "66");
}
}
当“+”操作中出现字符时,“+”:字符串连接符,而不是算数运算符
eg:“itheima” + 666
在“+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算符。当连续“+”操作,从左到右依次
eg: 1 + 99 + “年黑马”
赋值运算符
符号 | 作用+说明 |
---|---|
= | 赋值 a=10,将10赋值给变量a |
+= | 把左边和右边的数据做加法操作,结果赋值给左边 eg:int i = 10; i += 20; 结果是i = 30 |
-= | 减后赋值,a-=b,将a-b的值给a |
*= | 乘后赋值,a*=b,将a×b的值给a |
/= | 除后赋值,a/=b,将a÷b的商给a |
%= | 取余后赋值,a%=b,将a÷b的余数给a |
注:拓展的赋值运算符隐含了强制类型转换
自增自减运算符
符号 | 作用 + 说明 |
---|---|
++ | 自增,变量的值加1 |
– | 自减,变量的值减1\ |
注:
- ++和–既可以放在变量的后边,也可以放在的变量的前边。
- 单独使用时,++和–无论是放在变量的前边还是后边,结果一样。
- 参与操作时,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者–。
- 参与操作时,如果放在变量的前边,先拿变量做++或者–,后拿变量参与操作
- 最常见用法:单独使用。
public class OperatorDemo03{
public static void main (String[] args){
int i = 10;
system.out.println("i:" + i);
// 单独使用
i++; //++i;
system.out.println("i:" + i);
// 参与操作使用
int j = i++;
system.out.println("i:" + i);
system.out.println("j:" + j);
int j = ++i;
system.out.println("i:" + i);
system.out.println("j:" + j);
}
}
关系运算符
符号 | 说明 |
---|---|
== | a==b,判断a和b的值是否相等,成立为true,不成立为false |
!= | a!=,判断a和b的值是否不相等,成立为true,不成立为false |
< | 判断a是否小于b,成立为true,不成立为false |
<= | 判断a是否小于等于b,成立为true,不成立为false |
逻辑运算符
逻辑运算符是用来连接关系表达式的运算符,同时可以连接布尔类型的常量或者变量
- & 逻辑与 a&b,a和b都是true结果为true
- | 逻辑或 a|b , a和b都是false结果为false
- ^ 逻辑异或 a^b , a和b的结果不同为true
- ! 逻辑非 !a , 结果和a的结果相反
public class OperatorDemo03{
public static void main (String[] args){
int i = 10;
int j = 20;
int k = 30;
//& 有false则false
system.out.println((i>j) & (i>k));
system.out.println((i<j) & (i>k));
system.out.println((i>j) & (i<k));
system.out.println((i<j) & (i<k));
system.out.println("------------");
// | 有true则true
system.out.println((i>j) | (i>k));
system.out.println((i<j) | (i>k));
system.out.println((i>j) | (i<k));
system.out.println((i<j) | (i<k));
system.out.println("------------");
// ^ 相同为false
system.out.println((i>j) ^ (i>k));
system.out.println((i<j) ^ (i>k));
system.out.println((i>j) ^ (i<k));
system.out.println((i<j) ^ (i<k));
system.out.println("------------");
// ! 改变真假
system.out.println((i>j) ! (i>k));
system.out.println((i<j) ! (i>k));
system.out.println((i>j) ! (i<k));
system.out.println((i<j) ! (i<k));
system.out.println("------------");
}
}
短路逻辑运算符
- && 短路与 作用和&相同,但是有短路效果
- || 短路或 作用和|相同,但是有短路效果
注:逻辑与&,无论左边真假,右边要执行
短路与&&,若左边为真,右边执行,左边为假,右边不执行
逻辑与|,无论左边真假,右边要执行
短路与||,若左边为假,右边执行,左边为镇,右边不执行
三元运算符
格式:关系表达式?表达式1:表达式2;
范例:a > b ? a : b;
计算规则:
首先计算关系表达式的值
如果值为true,表达式1的值就是运算结果
如果值为false,表达式2的值就是运算结果`
public class OperatorDemo03{
public static void main (String[] args){
// 定义两个变量
int a = 10;
int b = 20;
// 获取两个数据中的较大值
int max = a > b ? a : b;
\\ 输出结果
system.out.println("max:" + max);
}
}