流程控制
-
流程:代码执行的顺序
-
流程控制:可以的通过某些格式控制代码的执行顺序
-
分类:
-
**顺序结构:**代码从上往下,从左往右依次顺序执行
-
**分支结构:**在代码的执行过程中,可能会碰到不同的选择,选择不同的内容,执行不同的结果。
特点:代码写的多,执行的少
-
**循环结构:**如果有一些相同的或者相似的代码需要反复执行,可以利用循环结构简化代码
-
分支结构
- if 语句
- if
- if……else
- if else…… if else…… else
- switch语句
if语句的第一种格式
- 格式:
if(条件表达式){
语句体;
}
- 注意事项:
- 条件表达式的执行结果必须是真或假(布尔表达式)
- 语句体没有固定要求
- 小括号后面不要加分号,否则无法控制语句体
- 如果大括号内只有一句,可以省略、否则不能省略
- 执行流程:
- 先执行表达式,结果是真是假
- 是真执行语句体
- 是假不执行
if语句的第二种格式
- 格式
if(条件表达式){
语句体1;
}else{
语句体2;
}
- 执行流程:
- 执行条件表达式,结果为真或假
- 结果为真,执行语句体1
- 结果为假,执行表达式2
if语句的第三种格式
- 格式
if (条件表达式1){
语句体1;
}else if (条件表达式2){
语句体2;
}else if (条件表达式3){
语句体3;
}
else {
语句体N;
}
- 执行流程:
- 执行条件表达式1,结果为真或假
- 如果表达式1为真,执行语句体1,直接结束
- 如果表达式1为假,执行表达式2
- 表达式2为真,执行语句体2,直接结束
- 如果表达式2为假,依次执行后续表达式、执行对应的语句体。
- 如果定义的多个表达式全部为假,就执行最后else中的语句体N
switch语句
- 格式
switch(表达式){
case 常量1:
语句体1;
break;
case 常量2:
语句体2;
break;
case 常量3:
语句体3;
break;
case 常量4:
语句体4;
break;
………………
default :
语句体N;
}
-
执行流程:
- 先获取小括号中表达式的值x
- 判断x与常量1匹配。如果相等,就执行语句体1,执行break,直接结束
- 如果x和常量1不相等,就不执行语句体1,直接和常量2匹配
- 如果x和常量2相等,就执行语句体2,执行break,直接结束
- 其次匹配后如果都不相等就执行defaul 中的语句体N
-
注意事项:
-
小括号中表达式的值的数据类型只能是:byte short int char String 枚举
-
case后面的数据必须是常量,不能是变量
-
break关键字一般情况下都要加上,如果不加会发生case穿透
-
default代码段可以写、也可以不写
如果加上能保证有代码执行,如果不加,可能没有代码执行
-
for循环
- 格式
for(初始化语句 ; 条件表达式 ; 初始化语句的变化){
循环体语句;
}
- 解释说明:
- 初始化语句:用来记录循环的次数,一般通过一个变量来实现
- 条件表达式:(结果为真或假)用来控制循环是应该继续还是应该结束
- 初始化语句的变化:随着循环的继续,应该让记录的次数不断地改变。
- 循环体语句:需要反复执行的代码
- 执行流程:
- 初始化语句,表示先定义一个变量来记录循环次数
- 执行条件表达式,结果为真或为假
- 如果条件表达式为假,直接结束循环,不再继续
- 如果结果为真,执行循环体语句
- 执行初始化语句的变化
- 重新回到第二步,重新判断结果
for循环注意事项
-
小括号中的三部分内容要通过分号分隔
-
后面的小括号不要加分号
-
循环体如果只有一句,可以省略大括号,如果多句,不能省略
-
条件表达式必须为真或假
-
初始化语句的变化,既可以是增加也可以是减少
只要可以让循环满足的次数能够解决问题即可
while循环
- 格式
初始化语句;
while (条件表达式){
循环体语句;
初始化语句的变化;
}
- 执行流程:
- 初始化语句:
- 条件表达式,结果为真或假
- 如果为假,直接结束while循环
- 如果为真,执行循环体语句
- 执行初始化语句的变化
- 回到第二段重新执行
do…while循环
- 格式
初始化语句;
do{
循环体语句;
初始化语句的变化;
}while(条件表达式);
- 执行流程
- 执行初始化语句
- 执行循环体语句
- 执行循环体语句变化
- 判断条件表达式,如果为真,返回第二步
- 如果条件表达式为假,结束循环
三种循环的区别
- do…while 循环 和for循环、while循环的区别:
- do…while循环 必须先执行一次循环体;
- for循环和while循环开始不执行循环体;
- for循环 和while循环、do…while循环的区别:
- for循环 的初始化表达式在后面不能继续使用,只能再循环体内使用
- while循环和do…while循环中的初始化表达式在后面也可以使用
死循环
- 概述:循环一直继续,无法结束
- 格式
for(;;){
循环体
}
while(true){
循环体
}
do{
}
跳转语句
- 概述:可以将循环强制结束的一些关键字
- 分类
- continue:结束本次循环,进入下次循环
- break;: 跳出循环
- return: 可以直接结束本方法
- System.exit(0); 推出虚拟机
嵌套循环
-
在一个循环语句中,循环体语句又是一个循环。(循环里面写循环)
-
格式:
for (int i =1;i <10;i++){ for(int j =1;j < 10;j++){ 循环体 } }
方法
-
概述:用来表示某一个功能的代码段
-
原因:
如果后续的编程中,有一段代码经常使用,可以将这段代码通过一个大括号括起来,然后给这段大括号起一个名字,后续如果需要使用的话,直接使用即可。不需要将这段代码重复定义。
-
好处:
- 减少代码冗余
- 后续使用这段代码时候,使用名字即【使用方便】
方法的定义
-
格式
修饰符 返回类型 方法名称(参数列表){ 方法体; 返回值语句; }
-
方法格式解释:
- 修饰符:统一写为 public static
- 返回值类型:可以表示某一个功能,那么该功能就有可能有新数据的产出,该方法产出的数据是什么类型,返回值就是什么类型
- 方法名称:给这段代码起一个名字。【小驼峰命名法】
- 参数列表:方法想要实现某一个特定的功能,就可能是传递一些数据,传递给方法的数据就是参数列表,一般通过定义变量的方式来定义参数列表。
- 方法体:实现该功能的所需要的具体代码
- 返回值语句:当方法产出新的数据后,需要将数据返回给使用者
-
说明:
- 方法定义之后不会默认启用,什么时候调用什么时候启用