流程控制
不论哪种编程语言,都有各种各样的流程控制结构,本篇文章介绍的就是各种不同的流程控制结构,比如:顺序结构、分支结构等等
顺序结构
任何编程语言最常见的就是顺序结构,顺序结构就是从上到下逐行地执行程序中的代码,中间没有任何的判断和跳转,这就是说,在main主方法中,排在前面的代码先执行,排在后面的代码后执行。
分支结构
java提供了两种常见的分支结构,if条件语句和switch分支语句,其中
if条件语句是使用布尔表达式或者布尔值来为分支条件进行分支控制
switch分支语句是用多个整型值进行匹配,从而实现分支控制
①if条件语句
if条件语句有三种形式
第一种形式:if(判断){可执行语句}
举个栗子:

结果输出:a大于b
第二种形式:if(判断){可执行语句}else{可执行语句}
举个栗子:

我们在第一种形式的基础上,修改b的值,并添加一个else{System.out.println("a小于b")}
当程序执行到if语句时,由于a小于b,所以第一个判断输出false,程序跳过if内的可执行语句,执行else内的可执行语句
结果输出:a小于b
第三种形式:if(判断){可执行语句}else if(判断){可执行语句}....else{可执行语句}
“....”内可以有零个到多个 else if语句,最后的else也可以省略掉
举个栗子:

将原本的程序中的b的值改为2,并且修改if条件语句的形式为第三种形式
结果输出:a等于b
当然,我们最后的else改成else if语句也是可以的

②switch分支语句
switch语句由一个控制表达式和多个case标签组成,switch语句后面的控制表达式的数据类型只能是byte、short、char、int四种整数类型,枚举类型和String(java.lang.String)类型
switch语句的语法格式为:
switch(判断)
{case 分支1:{可执行语句;break;}case 分支2:{可执行语句;break;}...default:{可执行语句}}
“...”内可以有零个到多个case分支
举个栗子:

输出结果为:现在是春天!
这里switch接收String类型的实例reason,reason的内容匹配到switch分支语句的第一个分支,所以输出第一个分支的内容,如果将reason改成其他的分支,则输出对应的内容,如果reason的内容不在分之内,则输出default的内容。
循环结构
循环语句可以在满足循环条件的情况下,一直反复执行某段代码,只要在合适的时候将循环的条件改为假,就能结束循环。
这段重复执行的代码就被成为循环体
循环结构包含三种循环语句,分别是while,do...while和for
①while循环语句(“当”循环)
while循环每次执行循环体时,总要先判断条件是否为true,如果为true就执行循环体的内容
while循环语句的语法:while(判断){可执行代码}
举个栗子:

输出结果为:0 1 2 3 4
每执行一次循环体,a的值就加1,当a等于5时,while的判断条件为false,结束循环
②do...while循环语句(“直到”循环)
do...while循环每次都是先执行循环体的内容,再进行条件判断,如果条件为true,则继续执行循环体内容
do...while循环语句的语法:do{可执行语句}while(判断);
举个栗子:

输出结果为:0 1 2 3 4
每执行一次循环体,b的值就加1,然后进行判断b是否小于5,如果小于5,继续执行循环体内容,直到b不再小于5
③for循环语句
for循环功能跟while和do...while差不多,但是比前两个更简便,大部分情况下可以代替while循环和do...while循环
for循环语句的语法:for(变量;判断;控制条件){可执行语句}
举个栗子:

输出结果为:0 1 2 3 4
for循环语句就相当于把循环体内控制循环条件的代码移到循环体外面,每次判断之后,只要c是小于5的,就自动为c加上1,直到c不再小于5,退出循环
④嵌套循环
嵌套循环就是将上面三种循环语句中的其中一种循环语句放入另一种循环语句中,执行的次数为n*m次
这里就不多做说明,只举栗子:

输出结果为:

控制循环结构
有循环结构,当然有控制循环结构,java中有三个控制循环结构的语句
①break(用于完全结束一个循环,跳出循环体)
举个栗子:

break语句结束循环结果:

②continue(用于忽略当次循环,继续下次循环)
举个栗子:

continue语句结束循环结果:

③return(用于结束方法,当程序执行到return,这个方法直接被结束)
举个栗子:

return语句结束循环结果:

从三个例子可以看出,break语句是结束方法中的循环,但是循环外的代码还是会被执行到;continue语句是忽略当次循环,会继续完成未完成的循环后,才结束循环;return语句直接结束方法,循环外的代码也不会被执行。
如果有帮助请记得收藏,如果有错误请帮忙指出来!
网友评论