一、流程控制概述
1. 在Java程序中,JVM默认总是顺序执行以分号;结束的语句。但是,在实际的代码中,程序经常需要做条件判断、循环,因此,需要有多种流程控制语句,来实现程序的跳转和循环等功能。\n\n 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块
f语句可以分为简单的if条件语句,if....else语句和if....else if的语句;\n\n例题:判断手机号码是否存在
![](https://i-blog.csdnimg.cn/blog_migrate/57285d2dc5cc21efd2b589b7b4f99282.png)
运行结果如下
![](https://i-blog.csdnimg.cn/blog_migrate/02fd844838f0214653d3bed160e5b06c.png)
流程图如下
![](https://i-blog.csdnimg.cn/blog_migrate/0c3ca60f772b7699d6d705e7658132ef.png)
2、流程控制语句\nØ 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。\n流程控制语句分类\nØ 顺序结构\nØ 选择结构\nØ 循环结构\nØ if 语句第一种格式:if(关系表达式 ) { 语句体; }\n执行流程:首先判断关系表达式看其结果是true 还是 false,如果是true 就执行语句体,如果是false 就不执行语句体。
![](https://i-blog.csdnimg.cn/blog_migrate/27cd901ff25cfff2079f1e7e42ab9c86.jpeg)
Java 语言的复合语句是以整个块区为单位的语句,所以又称为块语句。下面我们来看看有关复合语句的使用方法和实例。\n\n复合语句由开括号“{”开始,闭括号“}”结束。
相信大家在Java的学习过程中已经接触到了这种复合语句,例如,在定义一个类或者方法时,类体就是以“{ }”作为开始与结束的标记,方法体同样也是以“{ }”作为标记。复合语句中的每个语句都是从上到下被执行。复合语句以整个块为单位,可以用在任何一个单独语句可以用到的地方,并且在复合语句中还可以嵌套复合语句。
![](https://i-blog.csdnimg.cn/blog_migrate/c1110bd76ca5b389c65541d2d7b36f2f.png)
运行结果如下
![](https://i-blog.csdnimg.cn/blog_migrate/2897f7d7a265022d5d9a71986bc35842.png)
提示:在使用复合语句时要注意,复合语句为局部变量创建了一个作用域,该作用域为程序的一个部分,在该作用域中某个变量被创建并且能够被使用。如果在某个变量的作用域外使用该变量,则会发生错误,例如,在本实例中,如果在复合语句外使用变量y、z、b将会出现错误,而变量 x 可在整个方法体中使用。\n\n
例题
![](https://i-blog.csdnimg.cn/blog_migrate/9faabdad8b7dbb3016ee35a3795e9d4f.png)
运行结果如下
![](https://i-blog.csdnimg.cn/blog_migrate/11a686ecb45748910a4642c890917375.png)
二、条件语句\
1.n\n1.if语句\n\n if条件语句是一个重要的编程语句,用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行另外的语句。
流程图如下
![](https://i-blog.csdnimg.cn/blog_migrate/8fc7d0b213c33af6d0365acc88706848.png)
布尔表达式:必要参数,表达最后返回的结果必须是一个布尔值\n\n语句序列:可选参数,可以是一条或多条语句,当表达式的值为true时执行这些语句。
![](https://i-blog.csdnimg.cn/blog_migrate/dd6930e376a474779566da862d95c5a0.jpeg)
语句序列:可选参数,可以是一条或多条语句,当表达式的值为true时执行这些语句\n\n语句序列中只有一条语句:
![](https://i-blog.csdnimg.cn/blog_migrate/d388a893a7c4d4df9ccacf2991e7c616.jpeg)
省略if条件表达式的语句序列:
![](https://i-blog.csdnimg.cn/blog_migrate/ab78ce76c9af00e1f146546ccbadd629.jpeg)
if语句代码实况如下,在主方法中定义整型变量,使用条件语句判断两个变量的大小来决定输出结果:
![](https://i-blog.csdnimg.cn/blog_migrate/c3a796ddfa2a5567e6cf13bc414693ad.png)
2.if....else语句
\n\n if....else语句是是条件语句中最常用的一种形式,它会针对某种条件有选择地的作出处理。通常表现为“如果满足某种条件,就进行某种处理,否则就进行另一种处理”if后面“()”内的表达式的值必须是boolean型的,如果表达式的值为true,则执行紧跟if语句的复合语句;如果表达式的值为false,则执行else后面的复合语句。\n\n 同简单的if条件语句一样,如果if....else的语句的语句程序只有一条语句(不包括注释),则可以省略该语句序列外面的“{。
例题代码如下成绩:
![](https://i-blog.csdnimg.cn/blog_migrate/02993563415574d057316368056829f8.png)
流程图如下
![](https://i-blog.csdnimg.cn/blog_migrate/1e819fe9f5679a36ea73f029cbadbf13.png)
3..if....else if多分支语句
1.\n\n if....else if多分支语句用于针对某一事件的多种情况进行处理,通常表现为“如果满足某种条件,就进行某种处理,否则如果满足另一种条件则执行另一种处理”
例题如下
![](https://i-blog.csdnimg.cn/blog_migrate/6389ef227c9a331157961299e3f616ce.png)
运行结果如下
![](https://i-blog.csdnimg.cn/blog_migrate/2744715ac19366b69ad1437415265d84.png)
嵌套的if结构\n使用嵌套的if…else语句是合法的。也就是说你可以在另一个if或者else if语句中使用if或者else if语句。你可以像if语句一样嵌套else if…else。
4.switch多选择结构
\n多选择结构还有一个实现方式就是switch case语句。\nswitch case语句判断一个变量与一系列值中某个值是否相等,每个值成为一个分支。\nswitch语句中的变量类型可以是:\nbyte、short、int或者char\n从Java SE 7开始,switch支持字符串String类型了\n同时case标签必须为字符串常量或字面量。
switch(表达式){\n\ncase 常量1:\n\n 语句1;\n\n //break;\n\ncase 常量2:\n\n 语句2;\n\n //break;\n\n... ... \n\ncase 常量N:\n\n 语句N;\n\n //break;\n\ndefault:\n\n 语句;\n\n //break;\n\n}
流程图
![](https://i-blog.csdnimg.cn/blog_migrate/5ca2cc307820b618c6b57fd6df9ec50b.png)
提示:
\ncase子句中的值必须是常量,不能是变量名或不确定的表达式值;\n\n同一个switch语句,所有case子句中的常量值互不相同;\n\nbreak语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有break,程序会顺序执行到 switch结尾 ;\n\ndefault子句是可任选的,同时,位置也是灵活的。当没有匹配的case时,执行default。
5.循环结构
\n循环四要素:初始化变量,循环条件,循环操作,改变变量的值(防止死循环)。\n\n1.while循环(先判断在执行)\nwhile(循环条件){\n\n 循环操作;\n\n}
![](https://i-blog.csdnimg.cn/blog_migrate/2412a2fcfde73bf29569b936f7bf5cd3.png)
2.do-while循环(先执行在判断)\ndo{
循环操作;\n\n}while(循环条件);
3.for循环 \nfor(参数初始化;条件判断;更新循环变量){\n\n 循环操作;\n\n}
do while\ndo while和while的区别\ndo while会先执行循环体再判断条件,while先判断条件再执行循环体\ndo while最少执行一次,while可以一次都不执行
四)跳转语句
(1)break语句\nbreak语句用于终止下面的case语句,用于强制退出循环,也就是忽略循环体中任何的循环条件和其他语句的限制。\n(2)continue语句\nContinue语句只能应用在for、while、do..while循环语句,用于让程序直接直接跳转到后面的其他语句,进入下一次的循环。\n(3)break语句和continue语句的比较\n 1.使用场合\n break可用于switch结构和循环结构中\n continue只能用于循环结构中\n 2.作用\n break语句终止某个循环,程序跳转到循环块外的下一条语句。\n continue跳出本次循环,进入下一次循环
![](https://i-blog.csdnimg.cn/blog_migrate/6d73514faa0bffc5843865c6134f9eaf.png)
6.程序流程控制:
continue的使用\ncontinue只能使用在循环结构中\ncontinue语句用于跳过其所在循环语句块的一次执行,继续下一次循环\ncontinue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环\n程序流程控制:return的使用\nreturn:并非专门用于结束循环的,它的功能是结束一个方法。 当一个方法执行到一个return语句时,这个方法将被结束。\n与break和continue不同的是,return直接结束整个方法,不管 这个return处于多少层循环之内
流程图如下
![](https://i-blog.csdnimg.cn/blog_migrate/1f382ee5aae5df39dd937de64730deeb.png)
break语句 例题说明:输出1-20之间第一个出现的偶数
![](https://i-blog.csdnimg.cn/blog_migrate/e9ddb3b497e09960d661a76015ddf86e.png)
运行结果如下
![](https://i-blog.csdnimg.cn/blog_migrate/1d0266b62e1bb565ec8af8c32e3a851b.png)
流程图说明
![](https://i-blog.csdnimg.cn/blog_migrate/bee02f1d83a9aeb2f4e9f04012a7aea3.png)
continue语句,例题讲解:输出1-20的奇数
代码如下
![](https://i-blog.csdnimg.cn/blog_migrate/d3243ca0b7c8cc0bea1324205d1590bf.png)
运行结果如下
![](https://i-blog.csdnimg.cn/blog_migrate/73c065eb60bde44e84b9fe638f3a7f90.png)
流程图如下
![](https://i-blog.csdnimg.cn/blog_migrate/8625e156f1d6cbf20b74be35fb9d9805.png)