当前位置: 代码迷 >> 综合 >> JavaSE 30 流程控制 → break continue goto
  详细解决方案

JavaSE 30 流程控制 → break continue goto

热度:31   发布时间:2023-11-24 14:15:59.0

5.6 break、continue、goto


  • break 在任何循环语句的主体部分,均可用break 控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break 也能在 switch 语句中使用。)
  • continue 语句 用在 循环中,用于 终止某次 循环过程,即跳过本次循环,不执行continue下面剩下的语句,立马转到下一次循环,进行下一次循环。

关于 goto 关键字的废除和保留:
goto 关键字很早就在程序设计语言中出现了。尽管 goto 仍被Java保留,但Java 并未给 goto 赋予实际性的功能。我们现如今的break 和 continue 实际上 原理 就是 goto,只不过 是更加的 具体化操作了。
在 C/C++ 中 goto 常常用来 跳出 多重循环,当写程序的时候 写了多重循环,但还需要 及时跳出,或者跳到某个 外层循环或内层循环的时候 就需要 用到 goto 语句!可惜 由于 goto 语句的可读性较差,还会 使程序员 写出来的程序 非常的 乱!所以 goto 早早地 就被唾弃了,取而代之的是 break 和 continue 两个 关键字。而 现如今 如果想要 再实现 goto 那样的操作,就需要 大量的 标识符 来进行 伪判断,告诉 程序 你应该 跳出了,你应该 continue了。。。。

  • “标签” 是指 后面跟一个冒号的 标识符。例如: lable:
  • goto 语句 就是 凭借着 标签的位置,进行跳转的!


Java实际上 还给你 保留了 标签的功能,所以不要灰心。

  • break 举例:
package 结构;public class breakANDcontinueANDlable {
    public static void main(String[] args) {
    for(int i = 1;i<100;i++){
    if(i%5==0 && i%7==0){
    System.out.println(i);break;//我们取到 我们需要的值了,那就跳出。//这是1 ~ 100 里面 第一个 同时被5 和 7 整除的。}}}}
  • continue 举例:
    不输出被10整除的数(1~100),并且每十个数一换行。
  for(int i = 0;i<100;i++){
    if(i%10==0){
    System.out.println();continue;}System.out.print(i+"\t");}

在这里插入图片描述


  • lable 标签的保留:

//打印101-150之间所有的质数
质数是指在大雨1 的自然数中,除了1和它本身以外不再有其他因数的自然数。

 outer:for(int m = 101;m<150;++m){
    for(int n = 2;n<m/2;++n){
    if(m%n==0){
    continue outer;}}System.out.print(m+"\t");}

在这里插入图片描述
它等价于什么呢?看下面:

boolean flag = true;for(int m = 101;m<150;++m){
    for(int n = 2;n<m/2;++n){
    if(m%n==0){
    flag = false;}}if(flag != false){
    System.out.print(m+"\t");}else {
    flag = true;}}

看到这一幕 你会大吃惊,你就会觉得 为啥这么麻烦。所以 我才说 goto 是有保留的必要的!而 Java 虽然没保留goto,但是保留了 lable 标签(标识符)!!! 也是可以完成 goto 以前那样操作的。

  相关解决方案