当前位置 : 主页 > 编程语言 > 其它开发 >

运算符(2)

来源:互联网 收集:自由互联 发布时间:2022-05-30
运算符算术运算符补充 +的作用: 表示正数(省略不写) 表示相加操作 进行字符串的拼接:+号左右两侧的任意一侧有字符串,那么这个加号就是字符串拼接的作用,结果一定是字符串 【
运算符 算术运算符补充

+的作用:

  1. 表示正数(省略不写)
  2. 表示相加操作
  3. 进行字符串的拼接:+号左右两侧的任意一侧有字符串,那么这个加号就是字符串拼接的作用,结果一定是字符串

【2】代码练习:

public class TestOpe{
    public static void main(String[] args){
        //表示正数:
        System.out.println(+5);//5
        //相加操作:
        System.out.println(5+6);//11
        System.out.println(5+'6');//59
        //字符串的拼接:
        //规则:+左右两侧的任意一侧有字符串,那么这个加号就是字符串拼接的作用,结果一定是字符串
        int num = 56;
        System.out.println("num="+num);//"num=56" ---> num=56
        System.out.println(5+6+"7");//11+"7"--->"117"  --->117
        System.out.println(5+'6'+"7");//59 +"7"--->"597" --->597
        System.out.println("5"+6+"7");//"56"+"7"  --->"567"--->567
        System.out.println("5"+'6'+"7");//"56"+"7"--->"567"--->567
        System.out.println("5"+'6'+'7');//"56"+'7'--->"567"---567
    }
}

++的用法: (--同理)

++单独用时:++单独使用的时候,无论放在前面还是后面,都是加1操作

int a = 5;
a++;//理解为:相当于  a=a+1 操作  
System.out.println(a);//6
-----------------------------
a = 5;
++a;//理解为:相当于  a=a+1 操作  
System.out.println(a); //6

将++参与到运算中:看++在前还是在后,如果++在后:先进行运算,然后再对++操作的变量加1;如果++在前,先加1,然后再运算

int a = 5;
int m = a++ + 7;//先运算--->m=a+7    再加1--->a = a+1 
System.out.println(m);//12
System.out.println(a);//6
---------------------------------------------------
a = 5;
int n = ++a + 7;//先加1--->a=a+1  再运算:--->n = a+7 
System.out.println(n);//13
System.out.println(a);//6
赋值运算符(=)

x = x + 4 等价于 x += 4;

二者区别:

(1)x += 4; 可读性稍差 编译效率高 底层自动进行类型转换

(2)x = x + 4 可读性好 编译效率低 手动进行类型转换

//给出三个数,求和:
//1.给出三个数:
int num1 = 10;
int num2 = 20;
int num3 = 30;
//2.求和
//int sum = num1+num2+num3;
//定义一个变量,用来接收和:
int sum = 0;
sum = sum + num1;//等效:  sum += num1;
sum = sum + num2;// sum += num2;
sum = sum + num3;//sum += num3;
//3.将和输出:
System.out.println("和:"+sum);

ps:请问a+=b 相当于 a=a+b,那么也相当于 a=b+a吗?

在基本数据类型中,可以这样理解,但对String类型就不成立了
譬如:

String a = "hello";
String b = "world";
a = a + b;//"helloworld"
a = b + a;//"worldhello"
关系运算符(boolean)

Java包含丰富的关系运算符。

检验相等性,可以使用两个等号 ==。

3 == 7;//flase

检验不等性,可以使用 !=

3 != 7;//true

同意也有<(小于)、>(大于)、<=(小于等于)、>=(大于等于)

逻辑运算符

逻辑运算符:进行逻辑运算的,运算符左右连接的都是 布尔类型的操作数,最终表达式的结果是布尔值:要么是true,要么false

逻辑与(&)规律:只要有一个操作数是false,那么结果一定是false

1 > 2 & 1<4;//flase
1 < 4 & 1 > 5;//flase
1 < 2 & 1 < 5;//flase

短路与(&&):效率高一些,只要第一个表达式是false,那么第二个表达式就不用计算了,结果一定是false,相当于短路了一样

int a = 3;
int b = 4;
a++ > 3 && ++b > 4;//flase   
System.out.println(a)//4
System.out.Println(b)//4

ps:执行a++过程中,先运算再赋值,所以 a++ > 3(3 > 3)为flase,后面的语句不计算(b=4),不会执行++操作,最后再把(3+1的值赋给a)

逻辑或(|):只要有一个操作数是true,那么结果一定是true

短路逻辑或(||):只要第一个表达式是true,那么第二个表达式就不用计算了,结果一定是true

int a = 3;
int b = 4;
++a > 3 || ++b > 4;//true   
System.out.println(a)//4
System.out.Println(b)//4

逻辑非(!):取相反结果

!(1 < 3);//flase
!(1 > 2);//true

逻辑异或(^):两个操作数结果相同,结果为false,不相同,结果为true

(1 < 3) ^ (1 < 2)//flase

三目运算符:condition ? expression1 : expression2

a ? b : c

其中a是一个布尔类型的表达式,返回结果要么是true要么false,通过a的结果决定最终表达式的结果:
如果a的结果是true,那么表达式最终结果为b
如果a的结果是false,那么表达式最终结果为c

int num = (5 > 7) ? 6 : 9;//num = 9
x < y ? x : y;//返回x和y中较小的那个数
运算符优先级

不需要去刻意的记优先级关系,同级别的运算符按照从左往右依次计算
赋值<三目<逻辑<关系<算术<单目,同一级别

image-20220417085314968

PS:实际开发中我们不会写特别复杂的表达式,你要想先算谁就用()括起来

写在最后

作为Java初学者,发博客的主要目的是为记录自己的学习过程,帮助自己更好的巩固基础,也希望这些小的知识点可以为小伙伴们带来一点帮助,如果有说的不对的地方,欢迎大家在评论区指出。

上一篇:微服务进阶
下一篇:没有了
网友评论