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?

image

个人理解原因是:

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. 赋值运算符

运算符 描述
= 赋值,将右边的值赋给左边
+= 加和赋值,把左边和右边的数相加赋值给 左边
-= 减和赋值,把左边和右边的数相减赋值给 左边
*= 乘和赋值,把左边和右边的数相乘赋值给 左边
/= 除和赋值,把左边和右边的数相除赋值给 左边
%= 取模和赋值,把左边和右边的数相取模后赋值给 左边
<<= 左移位赋值运算符
>>= 右移位赋值运算符
&= 按位与赋值运算符
^= 按位异或赋值操作符
|= 按位或赋值操作符
posted @ 2021-04-15 09:34  WNAOII  阅读(107)  评论(0)    收藏  举报