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 classDemo05 {public static voidmain(String[] args) {int num1 = 10;
System.out.println("输出一个数:"+num1);
}
}
输出结果:
思考:以下这两个的输出结果会一样吗?
System.out.println("输出num1+num2:"+num1+num2);
System.out.println(num1+num2+"输出num1+num2:");
字符的加法运算
我们看下面这段代码
public classDemo05 {
public static voidmain(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 classDemo05 {public static voidmain(String[] args) {int num1 = 10;int num2 = 8;float num3 = num1 /num2;
System.out.println(num3);
}
}
我们看下上面这个例子的输出结果是1,为什么呢?虽然我们定义了num3的类型是float,但是num3赋值的后面式子是整数类型,所以至少要对其中一个类型进行强制转换,我们可以在num1前加float,如下
public classDemo05 {public static voidmain(String[] args) {int num1 = 10;int num2 = 8;float num3 = (float) num1 /num2;
System.out.println(num3);
}
}
那么输出的结果就为1.25。
现实中,我们可能会碰到除不尽的情况,又需要只保留其中几个小数点,如何处理呢?
public classDemo05 {public static voidmain(String[] args) {int num1 = 10;int num2 = 3;float num3 = (float) num1 /num2;
System.out.println(num3);
}
}
上述例子输出的结果为3.3333333,如果我们希望输出的结果是只有2个小数点的话,那么我们需要用到DecimalFormat这个类
importjava.text.DecimalFormat;public classDemo05 {public static voidmain(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);
}
}