Java的运算符 - 算术运算符

Java作为高级语言,提供了丰富的运算符,包括最基本的算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符等,还提供一些扩展运算符、条件运算符等。

Java提供的算法运算符有最基本的二元运算符,加(+),减(-),乘(*),除(/),求余(%),还有一元运算符++,--。

运算符 名称 说明 示例
+ 加法 求a加b的和,还可以用来连接字符串 a+b
- 减法 求a减b的差 a-b
* 乘法 求a乘b的积 a*b
/ 除法 求a除以b的商 a/b
% 求余 求a除以b的余数 a%b
++ 自增 先取值,再自增加1或先自增加1,再取值 a++或++a
-- 自减 先取值,再自减减1或先自减减1,再取值 a--或--a

 

 

 

 

 

 

 

 

 

 

1.优先级

优先级顺序:(   )大于  ++,-- 大于  *,/,%  大于  +,-,即括号内的先运算,然后++、--,然后*,/,%,最后+,-

例如:

        int num1 = 10;
        int num2 = 8;
        int num3 = 7;
        int num4 = num1 * (num2 + num3) % num3;

计算顺序:先计算括号内num2+num3的值,然后num1乘以括号内计算的值后,再对num3进行求余,其结果为:3。

比如a-b*c这个式子,先计算b*c,然后在计算a-b*c,通常为了程序易读性,一般这种式子我们写成a-(b*c)。

 

2.数字与字符的算术运算及加号作为字符连接使用

+ 符号除了作为加法外,还可以用来连接字符串,如下代码:

public class Demo05 {
    public static void main(String[] args) {
        int num1 = 10;
        System.out.println("输出一个数:"+num1);
    }
}

输出结果:

 

 思考:以下这两个的输出结果会一样吗?

 System.out.println("输出num1+num2:"+num1+num2);
 System.out.println(num1+num2+"输出num1+num2:");

 

字符的加法运算

我们看下面这段代码

public class Demo05 {
    public static void main(String[] args) {
        int num1 = 10;
        char num2 = 'a';
        System.out.println(num1+num2);
    }
}

输出的结果是:107,为什么?a对应uicode的编码是97,所以num1+num2=10+97=107。

 

3.除法中的类型转换及小数点处理

算术运算符中的除法可能涉及到小数点或除不尽的情况,需要特别注意,举2个例子说明。

public class Demo05 {
    public static void main(String[] args) {
        int num1 = 10;
        int num2 = 8;
        float num3 = num1 / num2;
        System.out.println(num3);
    }
}

我们看下上面这个例子的输出结果是1,为什么呢?虽然我们定义了num3的类型是float,但是num3赋值的后面式子是整数类型,所以至少要对其中一个类型进行强制转换,我们可以在num1前加float,如下

public class Demo05 {
    public static void main(String[] args) {
        int num1 = 10;
        int num2 = 8;
        float num3 = (float) num1 / num2;
        System.out.println(num3);
    }
}

那么输出的结果就为1.25。

现实中,我们可能会碰到除不尽的情况,又需要只保留其中几个小数点,如何处理呢?

public class Demo05 {
    public static void main(String[] args) {
        int num1 = 10;
        int num2 = 3;
        float num3 = (float) num1 / num2;
        System.out.println(num3);
    }
}

上述例子输出的结果为3.3333333,如果我们希望输出的结果是只有2个小数点的话,那么我们需要用到DecimalFormat这个类

import java.text.DecimalFormat;

public class Demo05 {
    public static void main(String[] args) {
        int num1 = 10;
        int num2 = 3;
        float num3 = (float) num1 / num2;
        DecimalFormat num4 = new DecimalFormat(".00");//几位数就几个零
        String num5 = num4.format(num3);
        System.out.println(num5);
    }
}

 

posted @ 2020-10-12 17:58  Danny·茄子  阅读(355)  评论(0)    收藏  举报