运算符(2)

运算符

算术运算符补充

+的作用:

  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;
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 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中较小的那个数

运算符优先级

不需要去刻意的记优先级关系,同级别的运算符按照从左往右依次计算
赋值

Original: https://www.cnblogs.com/A-yun/p/16154986.html
Author: 飞船,宇航员
Title: 运算符(2)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/570838/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球