什么是程序流程控制结构
依据需求的不同会产生不同的程序结构,从而导致程序的执行流程是也不同的。我们把这一现象称之为程序的流程控制结构。
程序流程控制结构分类
- 顺序结构
- 选择结构
- 循环结构
顺序结构
在程序的执行过程中,按照程序语句自上而下逐行执行程序的现象。
是最简单的程序流程控制结构。
选择结构
概念
在程序的执行过程中先去判断条件是否成立,再根据条件的成立与否决定去执行对应的代码。
选择结构的语法格式
上图代表的就是选择结构。
菱形里面写的就是判断条件,并且判断条件是boolean类型的表达式,true(成立)、false(不成立)。
矩形中括号代表的是判断体,这里面写的就是如果布尔表达式为true后即将要执行的语句。
意义:if语句对条件表达式进行一次测试,若测试为真,则执行下面的语句,否则跳过该语句。
第一种实现方式
用if语句进行判断选择
第二种实现方式
三目运算符->语法格式:条件 ? 结果1 : 结果2
选择结构的分类
if单选择结构
if双选择结构
当条件表达式为真时,执行语句块1,否则,执行语句块2。也就是else部分。根据条件的成立与否进行2选1。
if多选择结构
多选择结构是根据多个条件的成立与否进行结果的选择,就是说这种结构可以检测到多种可能的情况。
if 语句后面可以跟 else if…else 语句。
初识switch选择结构
switch case语法格式
switch case说明
表达式可以是byte、short、int、char,在JDK1.7以后支持String
switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量
变量:存放数据的,并且存放的数据是可以发生改变
常量:存放数据,并且存放的数据是不可以发生改变 final
当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现,才会跳出 switch 语句。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现break 语句。
switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支,可以在任何位置,但建议在最后一个default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。
switch case选择结构使用时机
当做等值操作时,则就可以使用switch case选择结构
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
switch和if语句的对比
如果判断的具体数值不多,而且符合byte、short 、char、int、String、枚举等几种类型。虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。
也就是说,使用switch-case的,都可以改写为if-else。反之不成立。
循环结构
什么是循环结构
在Java中,按照一定次数重复地去执行程序,直至达到次数上限,将重复的代码只编写一次,然后再重复执行即可,这样的程序结构就是循环结构。
- 输出1000行HelloWorld。
循环结构的好处
减少代码的冗余性(重复性)
常用的循环结构
for循环结构
语法格式
for循环说明
- 初始化:完成变量的初始值,比如:int i = 1;
- 布尔表达式:完成循环条件判断,如果条件为true,则执行循环,否则结束当前整个for循环
- 循环体:也就是:将重复的代码编写在循环体中,并且重复的代码只编写一次,比如:System.out.println(“HelloWorld”);
- 更新:完成变量值的更改,比如:i++
for循环执行流程
最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
执行一次循环后,更新循环控制变量,再次检测布尔表达式。循环执行上面的过程。
while循环结构
while循环语法格式
while循环执行流程
先判断循环条件,如果循环条件为true,则执行循环体,然后再判断循环条件…一直到循环条件为false时,则结束当前整个while循环。
do while循环结构
do while循环语法格式
do while循环执行流程
先执行循环体,然后再判断循环条件,如果循环条件为true,则再执行循环体…一直到循环条件为false时,则结束当前整个do while循环
while和do-while的区别
while先判断后执行。dowhile是先执行后判断!
do…while总是保证循环体会被至少执行一次!这是它们的主要差别。
三种循环结构的区别
语法格式不同
for
while
do while
执行流程(顺序)不同
for循环和while循环:先判断,如果条件为true,则再执行循环体
do while循环:先执行循环体,然后再判断循环条件
使用情况不同
当循环次数固定时,建议:使用for循环
当循环次数不固定时,建议:使用while循环、do while循环
先判断,然后再执行,建议:使用while循环
先执行,然后再判断,建议:使用do while循环
双重循环结构
双重循环的语法格式
for(;;){ //称为外层循环
for(;;){ //称为内层循环
}
}
双重循环的特点
外层循环每执行一次,内层循环执行若干次
循环结构中使用break&continue
break
break 表示中断,在循环中遇到break,则结束当前整个循环,执行循环外面的语句
continue
continue表示继续,在循环中遇到continue,则结束当前这一次循环,继续执行下一次循环