【博学谷学习记录】超强总结,用心分享 | JavaEE基础语法总结02之运算符

142 阅读4分钟

运算符

1、算术运算符

运算符:对常量或者变量进行操作的符号

表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。

不同运算符连接的表达式体现的是不同类型的表达式。

举例说明:

int a = 10;

int b = 20;

int c = a + b;

+:是运算符,并且是算术运算符

a + b:是表达式,由于+是算术运算符,所以这个表达式叫算术表达式

符号作用
+
-
*
/
%取余

注意事项:

/% 的区别:两个数据做除法, / 取结果的% 取结果的余数

整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。

阅读下列代码,思考运行结果

public class Test {
    public static void main(String[] args) {
        int a = 1;
        char b = ‘a’;
        System.out.println(a + b);
}
}

运行结果: 98

a + b 的运算中,a为int类型,b为char类型

在上面的自动类型转换中提到,当(byte short char int)在一起运算的时候,都会提升为int之后,再进行运算

但是,char属于字符,字符是怎样提升为int数值的呢?

根据ASCII码表,char提升为int的过程,就是查找码表中,字符所对应的数值表示形式

字符‘a’查找到数值的97之后,在跟数值1进行运算,结果就是98

我们只需要记住ASCII码表中这三个字符的值即可,后面的值可以进行推算
‘a’--- 97
‘A’--- 650--- 48

注意:

当“+”操作中出现字符串时,这个”+”是字符串连接符,而不是算术运算。

在”+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行“+”操作时,从左到右逐个执行。

案例:数值拆分

需求:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台

分析:

①:使用Scanner键盘录入一个三位数

②:个位的计算:数值 % 10

123 除以 10(商12,余数为3)

③:十位的计算:数值 / 10 % 10

123 除以 10 (商12,余数为3,整数相除只能得到整数)

12 除以 10 (商1,余数为2)

④:百位的计算:数值 / 100

123 除以 100

(商1,余数为23)

公式总结:

个位 :数值 % 10

十位 :数值 / 10 % 10

百位 :数值 / 10 / 10 % 10

千位 :数值 / 10 / 10 / 10 % 10;

import java.util.Scanner;
public class yunsuan{
    //数值拆分  
    public static void main(String[] args){ 
        
        //输入
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个三位数:");
        int num=sc.nextInt();
        //个位数   %10
        int ge = num%10;
        //十位数  /10%10
        int shi = num/10%10;
        //百位数  /100
        int bai=num/100;
        
        System.out.println("数字"+num+"的个位是"+ge);
        System.out.println("数字"+num+"的十位是"+shi);
        System.out.println("数字"+num+"的百位是"+bai);
    }
}

自增自减运算符

单独使用时

单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的。

参与操作时

如果放在变量的后边,先将该变量原本的值,取出来参与操作,随后再进行自增(++),自减(--)。

int a = 10;

int b = a++;

结果:b=10,a=11

如果放在变量的前边,先对该变量做自增(++)或者自减(--),然后再拿变量参与操作。

int a = 10;

int b = ++a;

结果:a=11,b=11

最常见的用法:单独使用

2、赋值运算符

image-20220802160709794.png

3、关系运算符

image-20220802160821238.png

注意:关系运算符的结果都是boolean类型,要么是true,要么是false

4、逻辑运算符:

&(与) : 并且, 遇false则false, 只有符号左右两边同时为true, 结果才为true. |(或) : 或者, 遇true则true, 只有符号左边两边同时为false, 结果才为false !(非) : 取反 ^(异或) : 相同为false, 不同为true.

& 和 && 的区别 :

&&具有短路效果

& : 无论符号左边是true还是false, 右边都要继续执行

&& : 具有短路效果, 符号左边为false的时候, 右边就不执行了. 如果符号左边为true, 右边要继续执行.

逻辑与&,无论左边真假,右边都要执行。 短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。

逻辑或|,无论左边真假,右边都要执行。 短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。

5、三元运算符

格式:关系表达式 ? 表达式1 : 表达式2;

范例:a > b ? a : b;

计算规则:

首先计算关系表达式的值

如果值为true表达式1的值就是运算结果

如果值为false表达式2的值就是运算结果

    public static void main(String[] args) {
//        需求:已知三个人的的身高分别为150cm、210cm、165cm,请用程序实现获取这三个人的最高身高。
        int height1=150;
        int height2=210;
        int height3=165;
        //比较出两个人较高的那个,用一个变量接收
        int temp=height1>height2?height1:height2;
        //用较高的那个身高,跟第三个人的身高比较,得出最高身高
        int heighest=temp>height3?temp:height3;
        System.out.println(heighest);
    }