前提
三大结构也成为流程控制语句,分为三大类,分别问顺序结构、分支结构和循环结构。接下来就让我们来详细看看这三大结构特点吧。
顺序结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
顺序结构执行流程图:
顺序结构执行NS图:
顺序结构执行代码:
public static void main(String[] args){ int a = 10; a = a + 6; System.out.println("a的值为"+a); }
分支结构
分支结构又称为选择结构,可分为if选择语句和Switch语句。
if选择语句
if语句的格式1:
if (关系表达式) { 语句体; } • 1 • 2 • 3
执行流程:
- 首先计算关系表达式的值
- 如果关系表达式的值为true就执行语句体
- 如果关系表达式的值为false就不执行语句体
- 继续执行后面的语句内容
if语句的格式1执行流程图:
if语句的格式2:
if (关系表达式) { 语句体1; } else { 语句体2; }
执行流程:
- 首先计算关系表达式的值
- 如果关系表达式的值为true就执行语句体1
- 如果关系表达式的值为false就执行语句体2
- 继续执行后面的语句内容
if语句的格式2执行流程图:
switch语句
switch语句的格式:
switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; … default: 语句体n+1; break; }
格式说明:
表达式:取值为byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以是String。
case:后面跟的是要和表达式进行比较的值。
break:表示中断,结束的意思,用来结束switch语句。
default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
执行流程:
首先计算表达式的值。
依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后程序结束掉。
switch语句执行流程图:
循环结构
特征:重复做某件事情,具有明确的开始和停止标志。
循环结构的组成:
初始化语句:用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
循环体语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情
条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去
循环结构对应的语法:
初始化语句:这里可以是一条或者多条语句,这些语句可以完成一些初始化操作
条件判断语句:这里使用一个结果值为boolean类型的表达式,这个表达式能决定是否执行循环体。例如:a<3
循环体语句:这里可以是任意语句,这些语句将反复执行
条件控制语句:这里通常是使用一条语句来改变变量的值,从而达到控制循环是否继续向下执行的效果。常见i++,i–这样的操作
for循环语句格式
格式: for (初始化语句;条件判断语句;条件控制语句) { 循环体语句; }
执行流程:
① 执行初始化语句
② 执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③ 执行循环体语句
④ 执行条件控制语句
⑤ 回到②继续
while循环语句格式
基本格式: while (条件判断语句) { 循环体语句; } 完整格式: 初始化语句; while (条件判断语句) { 循环体语句; 条件控制语句; }
执行流程:
① 执行初始化语句
② 执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③ 执行循环体语句
④ 执行条件控制语句
⑤ 回到②继续
在这里插入图片描述
do…while循环语句
基本格式: do { 循环体语句; }while(条件判断语句); 完整格式: 初始化语句; do { 循环体语句; 条件控制语句; }while(条件判断语句);
执行流程:
① 执行初始化语句
② 执行循环体语句
③ 执行条件控制语句
④ 执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
⑤ 回到②继续
三种循环的区别
三种循环的区别:
- for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
- do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
for和while的区别:
- 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
- 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
死循环格式:
for(;😉 { }
while(true) { }
do{ }while(true);