自增
- i++
int a = 10;
int b = 20;
int c = a++ + b;
System.out.println(a);
//输出结果:11 --> 输出a最后自增的结果;
System.out.println(c);
//输出结果:30 --> a:10 先应用后自增;
- ++i
int a = 10;
int b = 20;
int c = ++a + b;
System.out.println(a);
//输出结果:11;
System.out.println(c);
//输出结果:30 --> a:10 先自增后应用;
除法处理
- 保证除法精度 --> double类型
int a = 9;
int b = 5;
System.out.println("(int类型)除法运算a/b:" + a/b);
//(int类型)除法运算a/b:1 --> int类型;
System.out.println("(double类型)除法运算a/b:" + (double)(a/b));
//(double类型)除法运算a/b:1.0 --> double类型;
System.out.println("(double类型)除法运算a/b:" + (double)a/b);
//(double类型)除法运算a/b:1.8 --> 解决除法计算精度问题:(double)a/b -->double类型
求模问题
- 求模(a%b:就是a/b后所得的余数) --> 判断奇偶数
if (a % 2 == 0) {
System.out.println("Even Num");
// a%2==0 --> 2的倍数
} else {
System.out.println("Odd Num");
}
三目运算
- int max = a > b? a : b;
- 判断数值大小
int a = 1;
int b = 2;
int max = a > b? a : b;
//输出最大值;
逻辑运算
与操作
- ‘&’,’&&’<与运算> “一假则假”
- ‘&’<普通与> --> 条件全部判定
if(1 == 2 & 10 % 0 == 0) {
System.out.println("yes");
}
//Exception in thread "main" java.lang.ArithmeticException: / by zero
at practice.three.string_1.andOperation.main(andOperation.java:5)
//抛出异常(10 % 0 == 0) --> 无法通过编译;
- ‘&&’<短路与> --> 由左往右一旦符合条件,输出结果
if(1 == 2 && 10 % 0 == 0) {
System.out.println("yes");
}
//输出结果yes;
或操作
- ‘|’,’||’<或运算> “一真则真”
- ‘|’<普通或> --> 条件全部判定
if(1 == 1 & 10 | 0 == 0) {
System.out.println("yes");
}
//抛出异常
- ‘||’<普通或> --> 由左往右一旦符合条件,输出结果
if(1 == 1 & 10 | 0 == 0) {
System.out.println("yes");
}
//输出结果yes
if (p.hash == hash && ((k = p.key) == key || (key != null && key.equals(k))))
e = p;
- if()解读 --> 由左向右 () && () || () && --> 由左往右两个逐个比对能得出结果便结束;
位运算
-
位与操作 (&) --> 一假则假
-
位或操作 (|) --> 一真则真
-
异或操作 (^) --> 同假异真
-
位移操作 (有符号位移:<<,>>;无符号位移:<<<,>>>)
-
‘&’,’|’,’^'操作
二进制数A | 二进制数B | 与操作 | 或操作 | 异或操作 |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
- 位移操作
int a = 2;
System.out.println(a << 2);
//输出结果: 8
//2(0010) << 8(1000)