运算符
算术运算符
符号 | 作用 | 说明 |
---|---|---|
+ | 加 | 参看小学一年级 |
- | 减 | 参看小学一年级 |
* | 乘 | 参看小学二年级,与"×"相同 |
/ | 除 | 参看小学二年级,与"÷"相同 |
% | 取余 | 获取的是两个数据做除法的余数 |
赋值运算符
自增自减运算符
关系运算符
符号 | 说明 |
---|---|
== | a==b,判断a和b的值是否相等,成立为true,不成立为false |
!= | a!=b,判断a和b的值是否不相等,成立为true,不成立为false |
> | a>b,判断a是否大于b,成立为true,不成立为false |
>= | a>=b,判断a是否大于等于b,成立为true,不成立为false |
< | a<b,判断a是否小于b,成立为true,不成立为false |
<= | a<=b,判断a是否小于等于b,成立为true,不成立为false |
逻辑运算符
逻辑运算符,是用来连接关系表达式的运算符。也可以直接连接布尔类型的常量或变量。
符号 | 作用 | 说明 |
---|---|---|
& | 逻辑与 | a&b,a和b都是true,结果为true,否则为false |
| | 逻辑或 | a|b,a和b都是false,结果为false,否则为true |
^ | 逻辑异或 | a^b,a和b结果不同为true,相同为false |
! | 逻辑非 | !a,结果和a的结果正好相反 |
/**
* & 逻辑与 a&b,a和b都是true,结果为true,否则为false
* | 逻辑或 a|b,a和b都是false,结果为false,否则为true
* ^ 逻辑异或 a^b,a和b结果不同为true,相同为false
* ! 逻辑非 !a,结果和a的结果正好相反
*/
public class OperatorDemo01 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 10;
// & 两个全true才为true,有一个false就false
System.out.println(a < b & c < b); //true true t
System.out.println(a > b & c < b); //false true f
System.out.println(a < b & c > b); //true false f
System.out.println(a > b & c > b); //false false f
System.out.println("------------------");
// | 两个为false才false,有一个为true就true
System.out.println(a < b | c < b); //true true t
System.out.println(a > b | c < b); //false true t
System.out.println(a < b | c > b); //true false t
System.out.println(a > b | c > b); //false false f
System.out.println("------------------");
// ^ 两个相同为false,两个不同为true
System.out.println(a < b ^ c < b); // true true f
System.out.println(a > b ^ c > b); // false false f
System.out.println(a > b ^ c < b); // false true t
System.out.println(a < b ^ c > b); // true false t
System.out.println("------------------");
boolean flag = true;
System.out.println(!flag); //f
System.out.println(!!flag); //t
System.out.println(!!!flag); //f
}
}
短路逻辑运算符
符号 | 作用 | 说明 |
---|---|---|
&& | 短路与 | 作用和&相同,但是有短路效果 |
|| | 短路或 | 作用和|相同,但是有短路效果 |
注意事项
- 逻辑与&,无论左边真假,右边都要执行。
- 短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。
- 逻辑或|,无论左边真假,右边都要执行。
- 短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。
public class OperatorDemo02 {
public static void main(String[] args) {
//定义变量
int a = 10;
int b = 20;
int c = 10;
//&& 有false则false
System.out.println(a < b && c < b); //t t t
System.out.println(a > b && c < b); //f t f
System.out.println(a < b && c > b); //t f f
System.out.println(a > b && c > b); //f f f
System.out.println("------------------");
//|| 有true则true
System.out.println(a < b || c < b); //t t t
System.out.println(a > b || c < b); //f t t
System.out.println(a < b || c > b); //t f t
System.out.println(a > b || c > b); //f f f
System.out.println("------------------");
int i = 10;
System.out.println(false&&i++ > 0); //f
System.out.println(i); //10
}
}
三元运算符
数据输入
scanner
流程控制
if
switch
for
while