一、运算符
1. 算术运算符
+ 表示加法运算符 - 表示减法运算符 * 表示乘法运算符
/ 表示除法运算符 % 表示取模/余运算符
注意:
(1)在Java语言中两个整数相除时,结果只取整数部分,丢弃小数部分。
(2)若希望保留小数部分,则常用处理方式如下:
a.将其中一个操作数强制转换为double类型再运算;
b.将其中一个操作数乘以1.0后再运算(推荐);
(3)0和0.0都不建议做除数以避免错误的发生。
(4)+既可以作为字符串连接符又可以作为加法运算符,区别如下:
当+两端的操作数中只要有1个操作数是字符串类型则按照字符串连接符处理,否则
按照加法运算符处理。
2.关系/比较运算符
> 表示是否大于 >= 表示是否大于等于 < 表示是否小于
<= 表示是否小于等于 == 表示是否等于 != 表示是否不等于
关系运算符作为最终运算的表达式结果一定是boolean类型。
3. 自增/自减运算符(难点)
+ 表示加法运算符 ++ 表示自增运算符,用于实现变量自身的数值加1的操作。
- 表示减法运算符 -- 表示自减运算符,用于实现变量自身的数值减1的操作。
4.逻辑运算符
&& 表示逻辑与运算符,相当于"并且",同真为真,一假为假。
|| 表示逻辑或运算符,相当于"或者",一真为真,同假为假。
! 表示逻辑非运算符,相当于"取反",真为假,假为真。
短路特性:
对于逻辑与运算来说,若第一个条件为假则整个表达式一定为假,此时跳过第二个条件判断
对于逻辑或运算来说,若第一个条件为真则整个表达式一定为真,此时跳过第二个条件判断
5.条件/三目运算符
?: - 表示条件运算符
条件表达式? 表达式1: 表达式2
- 判断条件表达式是否成立,若成立则执行表达式1,否则执行表达式2.
6.赋值运算符
(1)简单赋值
= 表示赋值运算符,用于将=右边的数据赋值给=左边的变量,用于覆盖变量中原来的数值。
笔试题:
ia == 10; - 表示ia是否等于10
10 == ia; - 表示10是否等于ia(推荐)
ia = 10; - 表示把数据10赋值给ia,覆盖ia原来的数值
10 = ia; - 编译报错
(2)复合赋值
+= -= *= /= ...
如:
ia = ia + 1; => ia += 1; 从结果上来说是等价的
7.移位运算符(了解)
<< 表示左移运算符,用于将<<左边数据的二进制位向左移动,右边用0填充。
>> 表示右移运算符,用于将>>左边数据的二进制位向右移动,左边用符号位填充。
>>> 表示无符号右移运算符,用于将数据的二进制位向右移动,左边用0填充。
8.位运算符(了解)
& 表示按位与运算符,同1为1,一0为0(1看做真,0看做假)。
| 表示按位或运算符,一1为1,同0为0.
~ 表示按位取反运算符,1为0,0为1.
^ 表示按位异或运算符,相同为0,不同为1.
9.运算符的优先级
(1)()的优先级极高;
(2) =的优先级极低;
(3) * / % 的优先级高于 + -,同级的哪个在前先算哪个;
二、分支结构(重中之重)
1.基本概念
当需要在Java程序中进行条件的判断,根据条件是否成立来决定是否执行相关的代码时,就需要使用分支结构加以描述。
2.if分支结构
(1)语法格式
if(条件表达式){
语句块;
}
(2)执行流程
判断条件表达式是否成立
=> 若成立,则执行语句块;
=> 若不成立,则分支结构结束;
3.if-else分支结构
(1)语法格式
if(条件表达式){
语句块1;
}
else{
语句块2;
}
(2)执行流程
判断条件表达式是否成立
=> 若成立,则执行语句块1;
=> 若不成立,则执行语句块2;
4.if-else if-else分支结构
(1)语法格式
if(条件表达式1){
语句块1;
}
else if(条件表达式2){
语句块2;
}
...
else{
语句块n;
}
(2)执行流程
判断条件表达式1是否成立
=> 若成立,则执行语句块1
=> 若不成立,则判断条件表达式2是否成立
=> 若成立,则执行语句块2
=> 若不成立,则执行语句块n