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 许可协议。转载请注明来自 妙妙屋!