Java奠基】运算符的讲解与使用

目录

运算符与表达式的使用

算术运算符

隐式转换与强制转换

自增自减运算符

赋值运算符

关系运算符

逻辑运算符

三元运算符


运算符与表达式的使用

运算符是指:对字面量或者变量进行操作的符号。

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

算术运算符

算术运算符包括:加(+)、减(-)、乘(*)、除(\)、取余(%)。

public class Main {
    public static void main(String[] args) {
        System.out.println(1+1); // 2
        System.out.println(2-1); // 1
        System.out.println(2*4); // 8
        System.out.println(10/3); // 对整数进行相除,得到的还是整数
        System.out.println(10%3); // 1
        System.out.println(10.0/3); // 小数参与计算得到的结果可能不准确
    }
}

当 " + " 操作中出现字符串时,这个 " + " 是字符串连接符,而不是算术运算符了,会将前后的数据进行拼接,并产生一个新的字符串。

public class Main {
    public static void main(String[] args) {
        // 当字符串和数字同时出现时,用 + 表示拼接
        System.out.println("123"+123);
        // 当连续出现多个 + 的操作时,且有字符串的话,会先进行算数运算,其次然后拼接
        System.out.println(10+12+"123"); // 10+12=22 22与123拼接
    }
}

字符 char 进行 + 的操作时,会把字符通过 ASCII 码表查询到对应的数字再进行计算。

public class Main {
    public static void main(String[] args) {
        // 对char进行+操作
        char A = 'a'; // a在ASCII表中代表的是97
        int B = 0;
        System.out.println(A+B); // 97+0还是97
    }
}

隐式转换与强制转换

数字进行运算时,数据类型不一样是不能进行运算的,需要转成相同类型才能继续运算。而这里需要借助隐式转换和强制转换。

隐式转换:也叫自动类型提升,把取值范围小的数值变成取值范围大的。

public class Main {
    public static void main(String[] args) {
        int a = 10;
        double b = 3.0;
        System.out.println(a+b); // 将数值小的int 转换成double并参与运算
        // 注意:byte、short、char三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算
        byte x = 10;
        byte y = 20;
        System.out.println(x+y); // 将byte类型转换成int再进行运算
    }
}

总结:

取值范围

byte < short < int < long < float < double

转换时机

数据类型不一样,不能进行运算,需要转成一样的才可以进行计算

转换规则

取值范围小的和取值范围大的进行运算,小的会先提升为大的,再进行运算;byte、short、char三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算。

强制转换:把取值范围大的数值变成取值范围小的。

其格式如下:目标数据类型 变量名 = (目标数据类型)被强转的数据。

public class Main {
    public static void main(String[] args) {
        byte b1 = 12;
        byte b2 = 24;
        byte result = (byte)(b1+b2);
        byte result1 = (byte)(b1*10+b2^10); // byte的取值范围为:-128~127
        System.out.println(result);
        System.out.println(result1); // 结果就发生错误了,因为要转换的数据过大。
    }
}

自增自减运算符

符号 作用 说明
++ 变量的值加1
-- 变量的值减1

++和--既可以放在变量的前面,也可以放在变量的后面;无论是放在前面还是后面,单独写一行结果都是一样的。

public class Main {
    public static void main(String[] args) {
        int a = 10;
        a++;
        System.out.println(a); // 11
        ++a;
        System.out.println(a); // 12
        a--;
        System.out.println(a); // 11
        --a;
        System.out.println(a); // 10
    }
}

当然前置++和--与后置++和--,在实际运算中是有一些区别的,一般后置用的比较多,如下:

public class Main {
    public static void main(String[] args) {
        int a = 10;
        int b = a++; // 先用后加
        System.out.println(a); // 11
        System.out.println(b); // 10
        int x = 10;
        int y = ++x; // 先加后用
        System.out.println(x); // 11
        System.out.println(y); // 11
    }
}

赋值运算符

符号 作用 说明
= 赋值 int a = 10,将10赋值给变量a
+= 加后赋值 a+=b,将a+b的值给a
-= 减后赋值 a-=b,将a-b的值给a
*= 乘后赋值 a*=b,将a*b的值给a
/= 除后赋值 a/=b,将a/b的商给a
%= 取余后赋值 a%=b,将a/b的余数给a

注意:扩展的赋值运算符隐含了强制的类型转换。

public class Main {
    public static void main(String[] args) {
        int a=10,b=20;
        a+=b;
        b/=a;
        System.out.println(a); // a = a+b=30
        System.out.println(b); // b = b / a = 2/3 = 0
    }
}

关系运算符

关系运算符也叫比较运算符,其主要分类如下:

符号 说明
== a==b,判断a和b的值是否相等,成立为true,不成立为false
!= a!=b,判断a和b的值是否不相等,成立为true,不成立为false
> a>b,判断a是否大于b,成立为true,不成立为false
>= a>=b,判断a是否大于等于b,成立为true,不成立为false
< a<b,判断a是否小于b,成立为true,不成立为false
<= a<=b,判断a是否小于等于b,成立为true,不成立为false
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个整数:");
        int i = sc.nextInt();
        System.out.println("请输入第二个整数:");
        int j = sc.nextInt();
        if(i>j){
            System.out.println("相亲成功!");
        }else{
            System.out.println("相亲失败!");
        }
    }
}

逻辑运算符

符号 作用 说明
& 逻辑与(且) 并且,两边都为真,结果才为真
| 逻辑或 或者,两边都为假,结果才为假
^ 逻辑异或 相同为false,不同为true
! 逻辑非 取反
public class Main {
    public static void main(String[] args) {
        // 逻辑与
        System.out.println(true & false); // false
        System.out.println(true & true); // true
        // 逻辑或
        System.out.println(true | false); // true
        System.out.println(false | false); // false
        // 逻辑异或
        System.out.println(true ^ true); // false
        System.out.println(true ^ false); // true
        // 逻辑非 
        System.out.println(!true); // false
        System.out.println(!false); // true
    }
}

两种特殊的逻辑运算符—短路运算符

短路与:&&,结果与 & 相同,但有短路效果。

短路或:|| ,结果与 | 相同,但有短路效果。

短路运算符具有短路效果:当左边的表达式能确定最终结果,那么右边便不会再参与运行了

三元运算符

三元运算符也称三元表达式,类似于if-else的简写形式,其基本格式如下:

关系表达式 ? 表达式1 : 表达式2;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("第一个人的体重:");
        int i = sc.nextInt();
        System.out.println("第二个人的体重:");
        int j = sc.nextInt();
        String result = i == j ? "体重相同" : "体重不同";
        System.out.println(result);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_53123067/article/details/129259744