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); } }
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号