运算符是一种“功能”符号,用以通知 Java 进行相关的运算。
Java 语言中常用的运算符可分为如下几种:
? 算术运算符 ? 赋值运算符 ? 比较运算符 ? 逻辑运算符 ? 条件运算符
例子:
- 算术运算符
算术运算符主要用于进行基本的算术运算,如加法、减法、乘法、除法等。
Java 中常用的算术运算符:
其中,++ 和 -- 既可以出现在操作数的左边,也可以出现在右边,但结果是不同滴
例1:
运行结果:
例2:
运行结果:
注意:自增和自减运算符只能用于操作变量,不能直接用于操作数值或常量!例如 5++ 、 8-- 等写法都是错误滴!
PS:% 用来求余数,也称为"取模运算符"
请在编辑器的指定行中输入代码实现功能
第7行:求取四个年龄的总和
第8行:求取四个年龄的平均值
第9行:求取 age1 和 age2 的差值
第10行:求取 age1 自减后的年龄
运行结果如图所示:
- 赋值运算符
赋值运算符是指为变量或常量指定数值的符号。如可以使用 “=” 将右边的表达式结果赋给左边的操作数。
Java 支持的常用赋值运算符,如下表所示:
请在编辑器中,空白处编写代码,应用赋值运算符实现如下结果:
public class HelloWorld{ public static void main(String[] args) { int one = 10; int two=20; int three=0; three=one+two; three+=one; three-=one; three*=one; three/=one; three%=one; //System.out.println("three=one+two==>"+three); //System.out.println("three+=one==>"+three); //System.out.println("three-=one==>"+three); //System.out.println("three*=one==>"+three); //System.out.println("three/=one==>"+three); System.out.println("three%=one==>"+three); } }
- 比较运算符
比较运算符用于判断两个数据的大小,例如:大于、等于、不等于。比较的结果是一个布尔值( true 或 false )。
Java 中常用的比较运算符如下表所示:
注意:
1、 > 、 < 、 >= 、 <= 只支持左右两边操作数是数值类型
2、 == 、 != 两边的操作数既可以是数值类型,也可以是引用类型
例子:请在编辑器中的第 7 、 8 、 9 、 10 行中添加正确的比较运算符,实现如下运行结果:
- 逻辑运算符
逻辑运算符主要用于进行逻辑运算。Java 中常用的逻辑运算符如下表所示:
我们可以从“投票选举”的角度理解逻辑运算符:
1、 与:要求所有人都投票同意,才能通过某议题
2、 或:只要求一个人投票同意就可以通过某议题
3、 非:某人原本投票同意,通过非运算符,可以使其投票无效
4、 异或:有且只能有一个人投票同意,才可以通过某议题
当使用逻辑运算符时,我们会遇到一种很有趣的“短路”现象。
比如:( one > two ) && ( one < three ) 中,如果能确定左边 one > two 运行结果为 false , 则系统就认为已经没有必要执行右侧的 one < three 啦。
同理,在( one > two ) || ( one < three ) 中,如果能确定左边表达式的运行结果为 true , 则系统也同样会认为已经没有必要再进行右侧的 one < three 的执行啦!
例子:假设有 A 、 B 、 C 、 D 四个人投票,由他们决定投票是否通过,此时就到了逻辑运算符“大显身手”的时候了。请在编辑器中的第 7 、 8 、 9 、 10 行中填写代码,将程序补充完整
结合运行结果,相信可以帮助大家更好的理解逻辑运算符的应用~~
- 条件运算符
条件运算符( ? : )也称为 “三元运算符”。
语法形式:布尔表达式 ? 表达式1 :表达式2
运算过程:如果布尔表达式的值为 true ,则返回 表达式1 的值,否则返回 表达式2 的值
例如:
因为,表达式 8>5 的值为 true ,所以,返回: 8大于5
例子:在编辑器中的第 4 行输入代码,应用关系运算符实现 “判断:如果 score 大于或等于 60 ,输出及格,反之输出不及格“
运行结果为: 考试成绩如何:及格
Java中运算符的优先级
所谓优先级,就是在表达式中的运算顺序。Java 中常用的运算符的优先级如下表所示:
级别为 1 的优先级最高,级别 11 的优先级最低。譬如,x = 7 + 3 * 2 得到的结果是 13 “先乘后加”嘛!
PS:大家没必要去死记运算符的优先级顺序,实际开发中,一般会使用小括号辅助进行优先级管理。
例如:
分析:小括号优先级最高,因此
1、 执行 a + 18 ,结果为 30
2、 执行( a + 18 ) % 4 取模,结果为 2
3、 执行 a * ( ( a + 18 ) % 4 ),结果为 24
例子:第 5 行输入如下代码,?相信结合运行结果,大家会对运算符的优先级会有更加清晰的理解!
运行结果: