循序渐进学Java:break|continue|return关键字
分类:
文章
•
2025-02-05 20:09:34
目录,更新ing,学习Java的点滴记录
break和continue语句
- 介绍
在任何迭代语句的主体部分,都可用break和continue控制循环的流程.
break用于强行退出循环,不执行循环中剩余语句.
continue则停止当前的迭代,然后退回循环起始处,开始下一次迭代
- break和continue案例
说明:在这个for循环中,i的值永远不会到达100,因为一旦到达74,break语句就会中断循环.只要i不能被9整除,continue语句就会使执行过程返回到循环的最开始(这会是i值递增).如果能整除,将显示值
goto_标签_带标签的break和continue
- 编程语言中一开始就有goto关键字了,事实上,goto起源于汇编语言的程序控制:“若条件A成立,则跳到这里,否则跳到那里”.如果阅读由编译器最终生成的汇编代码,就会发现程序控制里多了很多跳转.
- goto语句是在源码级上的跳转,这使其招致了不好的声誉.若一个程序总是从一个地方跳到另一个地方,这对识别程序的控制流程造成较大影响.对于这个问题,
中庸之道
是最好的解决办法真正的问题并不在于使用goto,而在于goto的滥用,而且少数情况下,goto还是组织控制流程的最佳手段
.
- Java中没有goto.然后,Java也能完成一些类似跳转的操作,这与break和continue两个关键字有关,实际上他们不是一个跳转,而是中断迭代的方法,因为他们使用了相同的机制:
标签
.
- 标签是后面带有冒号的标识符.在Java中,标签起作用的唯一的地方就是迭代语句之前,"之前"表名在标签和迭代之间置入任何语句都不好.而在迭代之前设置标签的唯一理由是:希望在其中嵌套另一个迭代等.这是由于break和continue关键词通常只中断
当前循环
,但是如果随同标签一起使用,他们会中断循环,直到标签所在的地方
.
- 案例
内部for循环执行过程中,如果i=2时,就会执行内层for循环的第一个if语句,进而执行continue outer,这时,会重新执行外层for循环,此时i的值为3,然后执行内层for循环时,可以进入到第二个if语句,运行break outer,表示退出外层for循环,至此程序运行结束.如果没有break outer的话,就没有办法从内部循环里跳出外部循环.这是由于break本身只能中断最内层的循环(continue也是如此)
- 规则总结
(1) 一般的continue会退回最内层循环的开头(顶部),并继续执行
(2) 带标签的continue会到达标签的位置,并重新进入紧接在那个标签后面的循环.
(3) 一般的break会中断并跳出当前循环
(4) 带标签的break会中断并跳出标签所指的循环
- 重点:
在Java中需要使用标签的唯一理由就是因为有循环嵌套存在,而且想从多层嵌套中break或者continue
return语句
- return关键字有两个方面的作用:一方面是导致当前方法退出,并将方法需要返回的返回值返回,另一方面是程序运行到此处后结束(单独用Return的情况)
- 案例说明


在return;之后写的代码是无法执行到的,因此会编译时出错,显示问题为无法到达的声明,这也说明程序运行到return;时就结束了