【Java】运算符

目录

1. 算数运算符

1.1 基本四则运算符 

1.2 增量运算符

1.3 自增/自减运算符 

2.关系运算符

3.逻辑运算符

3.1 与

3.2 或

3.3 非

4.位运算符

4.1 按位与 

4.1 按位或

4.3 按位取反

4.4 按位异或

5.条件运算符

6.运算符的优先级 


1. 算数运算符

1.1 基本四则运算符 

        int a = 7;
        int b = 2;
        System.out.println(a + b); // 9
        System.out.println(a - b); // 5
        System.out.println(a * b); // 14
        System.out.println(a / b); // 3
        System.out.println(a % b); //1   相当于数学中的余数

   注意:   

  • 它们都是二元运算符,使用的时候两边都需要有操作数(数字);
  • /  和  % 右边操作数不能为零(参考数学分母不能为零);
  • 当/  和 % 两边的操作数为浮点数(小数)的时候,结果也为浮点数;
  • 当两边操作数不一致的时候,将发生整型提升;
    int a = 7;
    System.out.println(a + 1.0); // 8.0
//  a为int类型,1.0为double类型,当两者计算的时候,a将提升为double类型

1.2 增量运算符

        int a = 4;
        a += 2; //相当于a = a + 2;
        System.out.println(a);// 6
        a -= 2; //相当于a = a - 2;
        System.out.println(a);// 4
        a *= 2; //相当于a = a * 2;
        System.out.println(a);// 8
        a /= 2;//相当于a = a / 2;
        System.out.println(a);// 4
        a %= 2;//相当于a = a % 2;
        System.out.println(a);// 0

注意:

  • 它们都是二元运算符;
  • 只有变量才能使用该运算符,常量不能使用。

1.3 自增/自减运算符 

        int a = 1;
        a++;                        //a = 2;
        System.out.println(++a);    //a = 3;打印 3  前置++,先++,后使用
        System.out.println(a++);    //打印 3  a = 4;后置++,先使用,后++
        a--;                        //a = 3;
        System.out.println(a);      //打印3

注意:

  • 前置与后置是不同的;
  • ++是给变量加1,--是给变量减1;
  • 只有变量才能使用,常量不能使用;

2.关系运算符

        int a = 1;
        int b = 2;
        System.out.println(a > b);  //false
        System.out.println(a < b);  //true
        System.out.println(a >= b); //false
        System.out.println(a <= b); //true
        System.out.println(a == b); //false
        System.out.println(a != b); //true

   注意:

  • = 表示赋值, == 表示相等;
  • 连续比较两次不能使用 a < b < 4,这种语法是错误的;
  • 其比较结果都为 Boolean类型,即true 或 false;     

3.逻辑运算符

        逻辑运算符主要三个:与(&&)、或(||)、非(!)。

3.1 与

表达式1表达式2结果

int a = 1;
int b = 2;
System.out.println(a == 1 && b == 2);  // 左为真 且 右为真 则结果为真
System.out.println(a == 1 && b > 100);  // 左为真 但 右为假 则结果为假
System.out.println(a > 100 && b == 2);  // 左为假 但 右为真 则结果为假
System.out.println(a > 100 && b > 100); // 左为假 且 右为假 则结果为假

3.2 或

表达式1表达式2结果

int a = 1;
int b = 2;
System.out.println(a == 1 || b == 2);  // 左为真 且 右为真 则结果为真
System.out.println(a == 1 || b > 100);  // 左为真 但 右为假 则结果也为真
System.out.println(a > 100 || b == 2);  // 左为假 但 右为真 则结果也为真
System.out.println(a > 100 || b > 100); // 左为假 且 右为假 则结果为假

3.3 非

表达式结果
int a = 1;
System.out.println(!(a == 1));  // a == 1 为true,取个非就是false
System.out.println(!(a != 1));  // a != 1 为false,取个非就是true

4.位运算符

        位运算符主要有四个: 按位与(&), 按位或(|), 按位取反(~), 按位异或(^), 除 ~ 是一元运算符外, 其余都是二元运算符。

        计算时,针对二进制,如果非二进制会自动转化为二进制后再计算。

4.1 按位与 

 &:如果两个数的二进制都为1为1,或者为0。

        int a = 10;
        int b = 20;
        System.out.println(a & b);

10的二进制:0000 1010

20的二进制:0001 0100

则按位与为:0000 0000

转换十进制:0

4.1 按位或

|:如果两个数的二进制都为0为0,或者为1。

        int a = 10;
        int b = 20;
        System.out.println(a | b);

10的二进制:0000 1010

20的二进制:0001 0100

则按位或为:0001 1110

转换十进制:30

4.3 按位取反

~:这个数二进制0转为1,1转为0

        int a = 10;
        System.out.println(~a);// -11

注意:取反之后的结果是十六进制数,而在上面的程序中默认输出是十进制;

4.4 按位异或

^:两个数二进制相同位为0,不同为1

        int a = 10;
        int b = 20;
        System.out.println(a ^ b);

10的二进制:0000 1010

20的二进制:0001 0100

则按位异或:0001 1110

转换十进制:30

注意:

  • 两个相同的数字异或都为零;
  • 任何一个数字异或零都为本身;
  • 在有的情况下,将运算符 ^ 作为求幂运算符,要注意区分;

5.条件运算符

条件运算符:表达式1 ?表达式2 :表达式3

int a = 10;
int b = 20;
int max = a > b ? a : b; 
//a > b是否成立,成立 执行a,不成立执行b;

注意:

  • 表达式不能单独存在,其产生的结果必须要被使用。
int a = 1;
int b = 2;
a > b ? a : b;//报错
  • 表达式2和表达式3的结果要是同类型的,除非能发生类型隐式类型转换

6.运算符的优先级 

优先级                                                 运算符
1. [ ] ( )
2++ – ~ ! 
3* / %
4+ -
5<< >> >>>
6< > <= >=
7== !=
8&
9^
10l
11&&
12ll
13?:
14= *= /= %= += -= <<= >>= >>>= &= ^= l=

是不是有很多,当然我们不需要硬记,多多使用就会全部记着了,对于不了解的,有歧义的我们也可以加上括号(),和数学中的一样。 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

是小辰

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

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

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

打赏作者

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

抵扣说明:

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

余额充值