java(4)之运算符

1、算术运算符

运算符含义表达式
+1+1
-1-1
*1*2
/2/1
%取余5%2

2、赋值运算符

即= 表示将右边的值赋给左边的变量

即 

int i ;

i= 1;

运算符含义

表达式

+=x = x+yx+=y
-=x = x-yx - =y
*=x = x*yx*=y
/=x = x/yx /=y
%=x = x%yx %=y

代码示例

public class Main {
    public static void main(String[] args) {
        int x,y;
        x=9;
        y=10;
        System.out.println("'x+=y' ="+ (x+=y));

    }
}

代码结果如下:

3、关系运算符

运算符含义表达式运算结果
>大于5>3true
<小于'f'<'a'true
>=大于或等于5.6>=3.2true
<=小于或等于'A'>=65true
==等于‘A’==65true
!=不等于‘A’ !=65false

运算结果是boolean型,一般运用在循环语句中的循环条件

4、逻辑运算符

运算符含义表达式运算结果
&&与,并且5>3&&2>1true
||或者5>3||2>1false
!!truefalse

&&

与,其实就是表示当他链接的两个值都为真时为真,其他时候都是假

||

或,两者中有一为真则为真,在java中常用 a>90||a<50,表示找一个大于90或者小于50的值

!

非就是反

5、位运算符

运算符含义
&按位与
|按位或
^按位异或
~按位取反
<<左移位
>>右移位
>>>无符号右移位

1、&

直接来观察代码

public class Main {
    public static void main(String[] args) {
        int x,y;
        x=9;
        y=10;
        System.out.println("'x&y' ="+ (x&y));

    }
}

既然是按位与也就是将数字转换为二进制数在此代码中也就是

9 =1001   10 = 1010在&运算之后就是1000 也就是8

查看代码结果

2、|按位或

也是一样直接看代码(我并不会将代码更改大部分,这里只是想要去理解如何算,而不是去大量计算)

public class Main {
    public static void main(String[] args) {
        int x,y;
        x=9;
        y=10;
        System.out.println("'x|y' ="+ (x|y));

    }
}

已知:1001 ,1010则结果为11(1|0 = 1 ,0|1 = 1, 1|1 = 1 ,0|0 =0)

查看代码结果

3、按位或^

这里的^ 跟前面的||很像但是是按位运算(1|1 = 0,0|0 = 0 ,1|0 = 1, 0|1 = 1)

public class Main {
    public static void main(String[] args) {
        int x,y;
        x=9;
        y=10;
        System.out.println("'x^y' ="+ (x^y));

    }
}

结果如下:

4、按位取反~

public class Main {
    public static void main(String[] args) {
        int y;
        //x=9;x,
        y=10;
        System.out.println("'~y' ="+ (~y));

    }
}

结果如下:

5、右移位,左移位,无符号右移位

代码示例如下

public class Main {
    public static void main(String[] args) {
        int y;
        //x=9;x,
        y=10;
        System.out.println("'y<<1' ="+ (y<<1));
        System.out.println("'y>>1' = "+ (y>>1));
        System.out.println("'y>>>1' = " + (y>>>1));

    }
}

无符号和正常右移位的唯一不同是不考虑原数的正负

代码结果如下:

6、三元运算符

三元运算符就是?

语法如下:

逻辑表达式 ? 表达式1 : 表达式2 

代码示例如下:

public class Main {
    public static void main(String[] args) {
        int x,y,i;
        x=9;
        y=10;
        i =x>y?++x:++y;
        System.out.println(y);
        System.out.println(x);
        System.out.println(i);

    }
}

结果如下:

为啥呢,因为这里的x>y为false所以会实现y++ 所以会出现y = y+1 所以等于11

所以 i =11

7、自增自减运算符

而自增自减其实就是 ++y 其实就是y = y+1 而且是先加后用 也就是输出是y +1 而不是y 。y++ 是先输出y后变为y+1

代码示例如下

public class Main {
    public static void main(String[] args) {
        int x,y,i;
        x=9;
        y=10;
        System.out.println(x++);
        System.out.println(++y);

    }
}

结果如下:

也从侧面证明了 y ++是先用后加 ,++y是先加后用

8、运算符的优先级

运算符的越高越优先执行

下面是顺序

运算符优先级描述结合性
[]().,;1分隔符
++ -- !2自增,自减,逻辑非从右到左
* / %3算术乘除取余运算从左到右
+ - 4算术加减从左到右
>> << >>>5移位运算从左到右
< <= > >=6大小关系运算从左到右
== !=7相等关系运算从左到右
8按位与运算从左到右
^9按位异或运算从左到右
|10按位或运算从左到右
&&11逻辑与运算从左到右
||12逻辑或运算从左到右
?:13三元运算从左到右
=14赋值运算从右到左

其实优先级不需要怎样去牢记,只是要在解决问题去解决正常情况下都可以使用()来解决问题因为这样才是最符合逻辑的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

过度引用

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值