Java - 流程控制
一、表达式和语句
表达式类型
- a. 计算表达式,由变量或常量和运算符构成
 - b. new 表达式,结果是一个数组或类的对象
 - c. 方法调用表达式,结果是方法返回值或void(无返回值)
 
语句分为单语句和复合语句
- 单语句分为
 
- a. 空语句,什么功能都没有,就是单独的一个分号
 - b. 表达式语句,就是表达式后面加分号
 
- new表达式
 - 方法调用表达式
 - 计算表达式中的赋值表达式、自增自减表达式
 
- 复合语句分为
 
- a. 分支语句:
if...else,switch...case - b. 循环语句:
for,while,do...while - c. 跳转语句:
break,continue,return,throw - d. try语句:
try...catch...finally - e. 同步语句:
synchronized 
- a. 分支语句:
 
二、Scanner输入语句
1、各种类型的数据输入
1  | import java.util.Scanner;  | 
2、next()与nextLine()
next()方法:遇到空格等空白符,就认为输入结束nextLine()方法:遇到回车换行,才认为输入结束
1  | import java.util.Scanner;  | 
三、分支语句
1、单分支条件判断:if
1  | if(条件表达式){  | 
2、双分支条件判断:if…else
1  | if(关系表达式) {  | 
3、多分支条件判断:if…else if
1  | if (判断条件1) {  | 
4、多分支选择结构:switch…case
1  | switch(表达式){  | 
(1)switch表达式的值的类型
- 4种基本数据类型(byte,short,int,char)
 - 两种引用数据类型(JDK1.5之后枚举、JDK1.7之后String)
 
(2)case后面必须是常量值,而且不能重复
(3)执行过程
a. 入口
- ①当switch表达式的值与case后面的某个常量值匹配,就从这个
case进入 - ②当switch表达式的值与case后面的所有常量值都不匹配,寻找
default分支进入 
- ①当switch表达式的值与case后面的某个常量值匹配,就从这个
 b. 一旦从“入口”进入switch,就会顺序往下执行,直到遇到“出口”,即可能发生贯穿
c. 出口
- ①自然出口:遇到了switch的结束
} - ②中断出口:遇到了
break等 
- ①自然出口:遇到了switch的结束
 
Java12之后switch新特性:作为预览语言功能的第一个语言改动被引入Java12 中,开始支持如下写法
1  | switch(month) {  | 
5、if语句与switch语句比较
| 条件 | 穿透性 | |
|---|---|---|
| if语句 | 布尔类型值,可以用于范围的判断,也可以用于等值的判断,使用范围更广 | 无 | 
| swith语句 | 常量值,使用场景较狭窄 | 有,可以同时执行多个分支 | 
四、循环语句
1、while循环
- 循环条件必须是
boolean类型 
1  | while (循环条件语句①) {  | 
2、do…while循环
- 循环条件必须是
boolean类型 - 最后有一个分号
; - 至少会执行一次
 
1  | do {  | 
3、for循环
- 循环条件必须是
boolean类型 for()中的两个;不能多也不能少
1  | for(初始化语句①; 循环条件语句②; 迭代语句④){  | 
- 增强for循环:数组或集合每次循环拿出一个给左侧的变量或者对象
 
1  | for(变量or对象:数组or集合){  | 
4、关键字break
使用场景
- switch…case语句中终止switch
 - 循环语句中终止当前循环
 
5、关键字continue
使用场景
- 循环语句中提前结束本次循环,继续下一次的循环
 - 提高效率
 
6、循环语句的区别
三种循环结构都具有的四要素
- 循环变量的初始化表达式
 - 循环条件
 - 修改循环变量的迭代表达式
 - 循环体语句块
 
三种循环结构的区别
for和while循环先循环条件语句是否成立,然后决定是否执行循环体,至少执行零次循环体语句do...while循环至少执行一次循环体语句
选择循环结构
for循环:遍历有明显的循环次数(范围)的需求while循环:遍历没有明显的循环次数(范围)的需求do...while循环:循环条件依赖循环操作时的需求
7、循环嵌套
执行特点:外循环执行一次,内循环执行一轮
1  | for(初始化语句①; 循环条件语句②; 迭代语句⑦) {  | 
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 妙妙屋!