介绍运算符


前言

本文重点讲解了各种运算符及使用方法


一、运算符是什么?

运算符是在编程中用于完成各种数学和逻辑操作的符号。它们可以用于执行基本算术操作,如加法、减法、乘法和除法,以及比较操作,如等于、大于和小于。此外,运算符还可以用于逻辑操作,如逻辑与、逻辑或和逻辑非。运算符是编程中非常重要的一部分,它们可以帮助我们完成各种复杂的计算和判断。

二、运算符有哪些种类

运算符可以分为算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符等不同类型。不同的运算符具有不同的优先级和结合性,可以通过运算符优先级来确定运算顺序。

1.算数运算符

是用于进行数学运算的运算符
算术运算符有 + - * / % ++ –

① +

+具有两种使用方式,一种是作为连接符,用来连接字符串。二是作为数据间的运算符。

  • 作为连接符:用来连接字符串或多个字符串的符号。当数据类型不同时,会自动转换成相同的数据类型在转换成字符串类型。
public class Test2 {
    public static void main(String[] args) {
        char a = 'A';
        int  b = 0;
        int c = a + b;
        System.out.println("aa"+a);
    }
}

在这里插入图片描述

  • 作为运算符:对数值进行加法运算,包括字符类型,字符类型做加减运算时会自动转化成整型。
public class Test2 {
    public static void main(String[] args) {
        char a = 'A';
        //’A‘的ascll值为65
        int  b = 3;
        System.out.println(a + b);
    }
}

在这里插入图片描述

② - * /

  • 正常的运算符来使用
  • 整数相除的得到的仍是整数,比如在程序中10 / 3 的答案是3 而不是3.33。

③%

  • 取模运算符,用来取整数相除余数的运算符,例如:10 % 3 = 1。

④++ –

  • ++ 是自增运算符,对变量自身进行自增的操作, +1的操作
  • – 是自减运算符,对变量自身进行自减的操作, -1的操作
public class operator {
    public static void main(String[] args) {
        int a = 10;
        System.out.println(a++);
        System.out.println(++a);
        int b = 20;
        System.out.println(b--);
        System.out.println(--b);
    }
}

在这里插入图片描述
a++是先运行该行代码再进行自增,而++a是先进行自增在进行代码运算。包含强制类型转换,例如a++相当于 a = (a的类型)(a + 1),所以byte类型的变量进行自增自减操作后仍是byte类型。同理,自减运算也是如此。

  • 练习
public class operator {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = --a + b-- + a++ + --b - ++a;
//               9   20     9       18    11      c = 45
        System.out.println(c);
    }
}

在这里插入图片描述

2.赋值运算符

字面意思,是用于赋值的运算符,赋值运算符有 = += -= *= /=等,

① =

最基础的赋值运算符,作用是给变量赋值,例如 byte a; a = 5;

② += -= *= /=

将等号左右的式子相加相见相乘相除赋值给左边, 隐含了强制类型转化
a += 5; 实际运行的是 a = (a的数据类型)(a + 5);

3.比较运算符

比较运算符有 > < == >= <= != 返回的都是布尔类型的,常用于判断。

① > <

用于比较大小
例如 5 > 4 返回的结果是true ,4 > 5 返回的结果为false。

② ==

判断双方变量是否相等,相等就返回结果true,反之就false。

③ >= <=

用于比较大小,但包括相等也返回true;其它一①一样。

④ !=

与 == 相反,!=是不等返回true,相等返回false

public class operator {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 10;
        int d = 5;
        //false
        System.out.println(a > b);
        //true
        System.out.println(a < b);
        //false
        System.out.println(c > a);
        //true
        System.out.println(c >= a);
        //true
        System.out.println(c <= a);
        //true
        System.out.println(a == c);
        //false
        System.out.println(a != c);


    }
}

4.逻辑运算符

逻辑运算符有 & | ! ^ && ||
逻辑运算符用于对逻辑表达式进行操作,它们的作用是根据逻辑值(True或False)对表达式进行组合和求值。

①逻辑与 &

用于判断多个语句是否同时为true, 当语句同时为真时,返回true;当有一方为假时或都为假时返回false。

②逻辑或 |

用于判断多个语句是否为true, 当语句有一方为真或都为真时,返回true;都为假时返回false。

③取反 !

用于判断单个语句的真假的反面,当语句为真时返回false,语句为假时返回true。

④异或 ^

用于判断语句真假是否相同,相同返回false,不同返回true。

⑤&& ||

它们具有短路效应,其余与 & 和 | 功能一样。
&& 当左边为false,则右边不执行 ;有false则为false。
|| 当左边为true,则右边不执行;有true则为true。


```java
public class operator {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 10;
        int d = 5;
        //短路效应展示
        System.out.println((a<d)&&((++a) > c));
        System.out.println((a>d)||((++a) > c));
        System.out.println(a);

    }
}


在这里插入图片描述
从答案得知,右侧语句的自增语句没有运行。

5.三元运算符

格式:数据类型 变量 = boolean表达式 ? 表达式1 : 表达式2 ;
执行流程:算出boolean表达式的结果, 如果结果为true, 则将"表达式1的值" 作为最终结果, 否则将"表达式2的值"作为结果

public class operator {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 10;
        int d = 5;
        //三元运算符
         a = (a > d) ? a : d;
        System.out.println(a);
        a = (a < d) ? a : d;
        System.out.println(a);

    }
}

在这里插入图片描述

6.位运算符

位运算符常用于对二进制数进行位操作,例如进行位运算、位掩码、位反转等操作。在程序中使用位运算符可以提高运算的效率。

  • 按位与(&):两个对应的二进制位都为1时,结果为1;否则结果为0。
int a = 5;    // 二进制表示为 101
int b = 3;    // 二进制表示为 011
int result = a & b;   // result = 1(二进制表示为 001)
 
int a = 5;    // 二进制表示为 101
int b = 3;    // 二进制表示为 011
int result = a & b;   // result = 1(二进制表示为 001)
 
 ```-```angelscript 
int a = 5;    // 二进制表示为 101
int b = 3;    // 二进制表示为 011
int result = a & b;   // result = 1(二进制表示为 001)
 
  • 按位或(|):两个对应的二进制位中有一个为1时,结果为1;否则结果为0。
int a = 5;    // 二进制表示为 101
int b = 3;    // 二进制表示为 011
int result = a | b;   // result = 7(二进制表示为 111)
 
int a = 5;    // 二进制表示为 101
int b = 3;    // 二进制表示为 011
int result = a | b;   // result = 7(二进制表示为 111)
 
int a = 5;    // 二进制表示为 101
int b = 3;    // 二进制表示为 011
int result = a | b;   // result = 7(二进制表示为 111)
 
  • 按位异或(^):两个对应的二进制位不相同时,结果为1;否则结果为0。
int a = 5;    // 二进制表示为 101
int b = 3;    // 二进制表示为 011
int result = a ^ b;   // result = 6(二进制表示为 110)
 
int a = 5;    // 二进制表示为 101
int b = 3;    // 二进制表示为 011
int result = a ^ b;   // result = 6(二进制表示为 110)
 
int a = 5;    // 二进制表示为 101
int b = 3;    // 二进制表示为 011
int result = a ^ b;   // result = 6(二进制表示为 110)
 
  • 按位取反(~):对二进制数进行取反操作,即0变1,1变0。
int a = 5;    // 二进制表示为 101
int result = ~a;   // result = -6(二进制表示为 11111111111111111111111111111010)
 
int a = 5;    // 二进制表示为 101
int result = ~a;   // result = -6(二进制表示为 11111111111111111111111111111010)
 
int a = 5;    // 二进制表示为 101
int result = ~a;   // result = -6(二进制表示为 11111111111111111111111111111010)
 
  • 左移(<<):将二进制数向左移动指定位数,右边空出的位用0填充。
int a = 5;    // 二进制表示为 101
int result = a << 2;   // result = 20(二进制表示为 10100)
 
int a = 5;    // 二进制表示为 101
int result = a << 2;   // result = 20(二进制表示为 10100)
 
int a = 5;    // 二进制表示为 101
int result = a << 2;   // result = 20(二进制表示为 10100)
  • 右移(>>):将二进制数向右移动指定位数,左边空出的位用原来的符号位填充。
int a = 20;    // 二进制表示为 10100
int result = a >> 2;   // result = 5(二进制表示为 101)
 
int a = 20;    // 二进制表示为 10100
int result = a >> 2;   // result = 5(二进制表示为 101)
 
int a = 20;    // 二进制表示为 10100
int result = a >> 2;   // result = 5(二进制表示为 101)
 

总结

本文介绍了常用的各种运算符,重点熟悉前五个即可,位运算符了解即可。

  • 59
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值