6.运算符
运算符
1. 算术运算符
| 操作符 | 描述 |
|---|---|
| + | 加法 |
| - | 减法 |
| * | 乘法 |
| / | 除法 |
| % | 取余 |
| ++ | 自增 |
| -- | 自减 |
自增和自减
自增和自减比较特殊,表示自身的加减,是个一元运算符。
| 操作符 | 描述 |
|---|---|
| ++ | 相当于 在原来的基础上 +1 (1++ == 1+1) |
| -- | 相当于 在原来的基础上 - 1(1-- == 1-1) |
自增
public class Demo05 {
public static void main(String[] args) {
int i = 1;
int i1 = ++i; // ++在i前
int i2 = i++; // ++在i后
System.out.println("输出i1的结果为:" + i1);
System.out.println("输出i2的结果为:" + i2);
}
}
输出结果:
输出i1的结果为:2
输出i2的结果为:2 //输出结果均为2?

个人理解原因是:
int i1 = ++i; // ++在i前
当 ++在i前 的时候先把值自增再赋值给变量
相当于 先算 再 赋值
int i2 = i++; // ++在i后
当 ++在i后 的时候先把值赋值给变量,然后再自增
相当于 先赋值 再 算 ,因为先赋值导致 i2 的值还是 2
自减
自减和自增差不多就不多赘述了
Tip
- 以下程序输出的结果是什么?
public class Test {
public static void main(String[] args) {
int a = 10;
int b = (a++) * 2;
System.out.println(b);
}
}
2. 关系运算符
| 运算符 | 描述 |
|---|---|
| < | 小于,判断左边值是否小于右边,小于为 true 反之false |
| > | 大于,判断左边值是否大于右边,大于为 true 反之false |
| <= | 小于等于,判断左边值是否小于等于右边,小于等于为 true 反之false |
| >= | 大于等于,判断左边值是否大于等于右边,大于等于为 true 反之false |
| == | 等于(注意等于是两个等于号),判断两边的值是否相等,相等为 true 反之 false |
| != | 不等于,判断两边的值是否不相等,不相等为 true 反之 false |
关系运算符输出值都为布尔值:true 和 false
3. 位运算符
没细看参考菜鸟教程做了个表,有空再来填坑
| 运算符 | 描述 |
|---|---|
| & | 如果相对应位都是1,则结果为1,否则为0 |
| | | 如果相对应位都是 0,则结果为 0,否则为 1 |
| ^ | 如果相对应位值相同,则结果为0,否则为1 |
| ~ | 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 |
| << | 按位左移运算符。左操作数按位左移右操作数指定的位数。(把原来的数乘2) |
| >> | 按位右移运算符。左操作数按位右移右操作数指定的位数。(把原来的数除2) |
| >>> | 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 |
4. 逻辑运算符
| 运算符 | 描述 |
|---|---|
| && | 与(and)逻辑,同真为真 |
| || | 或(or)逻辑,同假为假 |
| ! | 非逻辑,取反 |
短路逻辑运算符
当运行与(&&)逻辑时两边同时为true时才为true,一旦有false出现,后面的操作就不再执行,直接输出false。
示例:
public class Demo02 {
public static void main(String[] args) {
int a = 2;
int b = 3;
boolean c = (a>2) && (++b>1); //Condition "(a>2)&&(++b>1)' is always 'false'
System.out.println("输出结果:"+c);
System.out.println("b的值为:"+b);
}
}
输出结果:false
b的值为:3 //在(a>2)时值为false,短路了,后面的++b就不再执行
5. 赋值运算符
| 运算符 | 描述 |
|---|---|
| = | 赋值,将右边的值赋给左边 |
| += | 加和赋值,把左边和右边的数相加赋值给 左边 |
| -= | 减和赋值,把左边和右边的数相减赋值给 左边 |
| *= | 乘和赋值,把左边和右边的数相乘赋值给 左边 |
| /= | 除和赋值,把左边和右边的数相除赋值给 左边 |
| %= | 取模和赋值,把左边和右边的数相取模后赋值给 左边 |
| <<= | 左移位赋值运算符 |
| >>= | 右移位赋值运算符 |
| &= | 按位与赋值运算符 |
| ^= | 按位异或赋值操作符 |
| |= | 按位或赋值操作符 |

浙公网安备 33010602011771号