第四章 程序控制结构
4.1 程序流程控制介绍
在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句。
/1) 顺序控制
程序从上往下执行,中间没有任何判断等语句
/2) 分支控制
/3) 循环控制
4.2 分支控制
4.2.1 单分支
if(条件表达式){
执行代码块;
...
}
说明:当条件表达式为true 会执行{}的代码,当为false时则不会执行
特别说明:如果{}只有一条语句可以不写{}建议写上{}
4.2.2 双分支
if(条件表达式){
执行代码块1;
}else{
执行代码块2;
}
说明:当条件表达式为成立 会执行代码块1的代码,不成立则执行代码块2的代码,如果执行的代码只有一条语句可以省略{},否则不可以省略
4.2.3 多分支
if(条件表达式){
执行代码块1;
}else if(条件表达式2){
执行代码块2;
}
...
else{
执行代码块n;
}
特别说明:多分支可以没有else,如果所有条件不成立,则没有执行代码入口,如果有else 所有条件不成立,则默认执行else的代码块
4.2.4 嵌套分支
在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支外面的分支结构称为外
层分支。老师建议: 不要超过 3 层 (可读性不好)
if(){
if(){
if-else...
}else{
if-else...
}
}
4.2.5 Switch分支结构
/*
1.switch关键字,表示switch分支
2.表达式对应一个值
3.case 常量1:当表达式的值等于常量1,就执行语句块1
4.break;表示退出switch
5.如果和case 常量1,匹配就执行语句块1,如果不匹配就继续往下匹配case 常量2...
6.如果没有一个匹配的就输出默认default 语句块;
*/
Switch(表达式){
case 常量1:
语句块1;
break;
case 常量2:
语句块2;
break;
...
case 常量n:
语句块n;
break;
default 语句块;
break;
}
4.2.5.1 switch细节
switch使用细节:
1.表达式的数据类型,应和case后的常量保持一致或者是可以自动转换为可以相互比较的类型,
比如输入的是字符,而常量是int
2.switch(表达式)中的表达式返回值必须是(byte short int char enum枚举 String)
3.case句子中的值必须是常量或者是常量表达式,不能是变量
4.default语句是可以选择的,是可以没有的,没有匹配case时,输出default
5.如果没有break,那么程序就会顺序执行到switch末尾,除非遇到break才会跳出
4.3 Switch 和 If的比较
- 如果判断的具体数值不多,而且符合 byte、 short 、int、 char, enum[枚举], String 这 6 种类型。虽然两个语句都可以使用,建议使用 swtich 语句.
- 其他情况:对区间判断,结果为 boolean 类型判断,使用 if,if 的使用范围更广
4.4 For循环
For 基本语法:
for(循环变量初始化;循环条件;循环变量迭代){
循环操作语句(可以是多条语句);
}
说明:
1.for关键字,表示循环控制
2.for有四要素:(1)循环变量初始化(2)循环条件(3)循环操作语句(4)循环变量迭代
3.循环操作,这里可以有多条语句
4.如果循环操作语句只有一条可以省略{},建议写上
For细节
1.循环条件是返回一个布尔值的表达式
2.for(;循环判断条件;) 中的初始化和变量迭代可以写到其它地方,但是两边的分号不能省略。
3.循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代
语句,中间用逗号隔开
4.5 While 循环
4.5.1基本语法
循环变量初始化;
while(循环条件){
循环体(语句);
循环变量迭代;
}
- 注意:
- while循环也有四要素,只是和for循环放的位置不一样
- 循环条件是返回一个布尔值的表达式true/false
- while循环是先判断再执行语句
4.6 do while循环
4.6.1 基本语法
循环变量初始化;
do{
循环体(语句);
循环变量迭代;
}while(循环条件);
- 注意:
- do while 是关键字
- 也有循环四要素,只是位置不一样
- 先执行,在判断,也就是程序至少执行一次
- 最后有一个分号;
- 循环条件返回的是一个布尔值的表达式
4.7 多重循环控制
4.7.1 介绍
1.将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for ,while ,do…while 均可以作为外层循环和内层循环。
【建议一般使用两层,最多不要超过 3 层, 否则,代码的可读性很差】
2.实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为 false 时,才会完全跳出内
层循环,才可结束外层的当次循环,开始下一次的循环[听不懂,走案例]。
3.设外层循环次数为 m 次,内层为 n 次,则内层循环体实际上需要执行 m*n 次。
4.8 break 跳转控制语句
4.8.1 基本介绍
break语句用于终止某个语句块的执行,一般使用在 switch 或者循环[for , while , do-while]中。
4.8.2 基本语法
{ ......
break;
......
}
4.8.3 以while为例
比较字符串是否相等使用equals()
4.9 continue 跳转语句
4.9.1 介绍
continue语句可以结束本次循环,继续执行下一次的循环。
4.9.2 语法
{ ......
continue;
......
}
和前面的break一样 都可以使用标签结束循环
4.9.4 以while为例
4.10 return 跳转控制语句
return 使用在方法,表示跳出所在的方法,在讲解方法的时候,会详细的介绍,这里我们简单的提一下。注意:如
果 return 写在 main 方法,则表示退出程序