循环语句,又称为迭代语句,是指在满足布尔表达式的值一直为true时反复执行语句,知道表达式的值为false为止
for循环语句
简单for循环语句是最常用的循环语句
初始化表达式可以为循环体定义一个新的变量并赋予一个初始值,一般是int变量,每次执行开始前都会判断布尔表达式,如果为true则执行循环,否则跳出并中断当前循环,一般布尔表达式中判断的变量即为初始化表达式中定义的变量,步进表达式是一种给布尔表达式中判断的变量进行变更的操作,一般是数值的增加或减少,以使循环语句可以被跳出并中断,每次循环结束会执行一次步进表达式
for循环括号内可以使用逗号表达式
foreach循环
是另一种简洁的for循环语句,主要用于数组和集合类,这种循环语句并不需要初始化int变量来按照序列依次访问待访问项中的各个元素,定义如下:
for([类型]变量:遍历对象) { // 循环体中执行语句 }while循环
while语句中每次循环开始前会先判断布尔表达式,值为True则会继续执行循环体中的语句,直到布尔表达式的值为False为止 定义如下:
while (布尔表达式) { //循环体内执行语句 }do…while 循环语句
在第一次执行时,循环体中语句至少被执行一次,即使布尔表达式第一次的值就是False 定义如下:
do { //循环体内执行语句 }while(布尔表达式);continue语句
当循环语句执行到某一次循环,满足了某种条件并希望不再执行后面未执行的语句,而是直接跳到下一次循环时,可以使用 continue 关键字。continue 并不是直接跳出整个循环语句,而是跳出当前的这次循环进入到下一次的循环中,循环语句中原有的布尔表达式仍需要进行判断
如果是多个循环嵌套,内层循环语句中的continue语句只能中断当前循环,并不能影响到外层循环语句
实际编程中会有会有这样一种情况:需要让程序跳出指定的循环语句。Java中提供了标签,一般定义在循环语句之前,用来标识当前循环。这相当于给当前循环起了一个名字以便它可以被找到。
设计标签的原因是:如果存在多个循环嵌套,break和continue只能跳出当前循环,但是使用标签后,程序就可以终端循环并直接跳转到标签所在的地方
定义格式:
[外层循环名]: [外层循环声明] { [内层标签名]: [内层循环声明] { continue[外层标签名]; //或break[外层标签名]; } }continue语句跳到指定标签后,只是中断该标签定义的当前循环流程,后面的循环仍然会被执行,定义的标签必须和continue语句跳转的标签名保持一致(或者说continue定义的标签名在整个循环体中是被定义过的)
break语句
在循环语句中,break关键字可以直接跳出当前循环,break语句是直接终止所有的循环语句,跳出循环体
多个循环嵌套中,内层循环语句的break语句只能中断内部循环,并不能影响到外部循环
break语句也可以和标签一起使用,作用是直接中断,跳出标签定义的循环体,标签定义的循环可以是内层循环,也可以是外层循环
goto语句
goto语句能够控制程序从一个地方跳转到另一处执行当程序复杂时,goto语句的滥用会导致程序流程控制变得异常复杂,因为随着goto语句定义的地方增多,产生的错误则会越来越多,并且代码会难以维护。虽然goto语句是Java中保留的关键字,但是Java中并不能使用goto语句return语句
return语句有两个用途:一个是定义一个方法的返回值(void方法也有一个隐式的return语句)另一个是直接跳出当前方法return语句也可以用来跳出当前所有的嵌套循环体