public class Sample {
public static void main(String[] args) {
int i = 0;
i++;
System.out.println(i++); //1
System.out.println(i); //2
int j = i++;
System.out.println(i); //3
System.out.println(j); //2
i = i++;
System.out.println(i); //3
i = i++;
System.out.println(i); //3
int a = 1;
System.out.println(a++ + ++a + a++ + a++ + ++a);
// 1 3 3 4 6
}
}
二、赋值运算符
下面四个赋值运算符与第一个赋值运算符的用法类同;例如:“-=”,减法赋值,a -= 3 ==>
a = a-3
三、比较运算符运算符的结果为布尔值类型
四、逻辑运算符
- > 大于
- < 小于
- >= 大于等于
- <= 小于等于
- != 不等于
- & 单与
- | 单或
- ^ 异或
- ! 非
- && 双与
- || 双或
注意:&与&&的区别:
&(位运算符):无论&左边的条件是false还是true,右边都会运行
&&(逻辑运算符,也叫短路运算符):若&&左边的条件是false,则不会执行右边条件
||单与:
|| 如果左边为真 则右边不用执行
public class Demo {
public static void main(String[] args) {
int a = 5;
int b = 2;
if(b++ >a++ & b-- > a--) ; //使用“单与”,“单与”两边条件都运行了,左边条件为“flase”
System.out.println(b +" "+ a); //输出:2 5
int m = 5;
int n = 2;
if(n++ > m++ && n-- > m--) ; //使用“双与”,“双与”只运行了左边,右边并没有运行,左边条件为“false”,if语句直接退出
System.out.println(n +" "+ m); //输出:3 6
}
}
^异或:
相同为假,不同为真
public class BreakDemo {
public static void main(String[] args) {
System.out.println(true ^ true);
System.out.println(true ^ false);
System.out.println(false ^ false);
System.out.println(false ^ true);
}
}
执行结果为:
- &位与
- 位异或
- 右移
- 左移
public class Demo {
public static void main(String[] args) {
int x = 7;
int y = 12;
System.out.println(x & y);
System.out.println(x | y);
System.out.println(x ^ y);
System.out.println(x << 3);
System.out.println(56 >> 2);
}
}
输出:
数据类型 变量名 = 布尔表达式?值1:值2
eg:
int number = 10 % 2 == 0? 10 : 2;
上述代码中,如果10 % 2 == 0为真,则结果就返回10, 如果为假就返回2。由上可知10 % 2 == 0为真,所以number = 10.



