从0开始学Java-9 循环控制


控制循环的跳转需要用到 break 和 continue 两个关键字,break 语句是中断循环,continue 语句是执行下一次循环。

创建BreakTest类,循环输出1~20的偶数值,在遇到第一个偶数时,使用

break 语句结束循环:

public class BreakTest {
  public static void main(String[] args) {
    for(int i = 1;i < 20;i++) {
      if(i%2 == 0) {        //如果i是偶数
        System.out.println(i);    //输出i’的值
        break;           //结束循环
      }
    }
    System.out.println(“—end—“);   //结束时输出一行文字
  }
}

循环嵌套情况下,break 语句将只会使程序流程跳出包含它的最内层的循环结构,即只跳出一层循环。

如果想让 break 跳出外层循环,Java 提供了“标签”的功能:

标签名:循环体{

  break 标签名;

}

标签名:任意标识符

循环体:任意循环语句

break 标签名:break 跳出指定的循环体,此循环体的标签名必须与 break 的标签名一致

带有标签的 break 可以指定跳出的循环,这个循环可以是内层循环,也可以是外层循环。

创建BreakInsideNested类,在该类中写两层 for 循环,第一层 for 语句循环 3 次,第二层 for 语句循环 5 次。当第二层 for 语句循环至第 4 次时,强行用 break 中断循环。输出程序执行时外层循环和内层循环各循环了多少次:

public class BreakInsideNested {
  public static void main(String[] args) {
    for(int i = 1;i <= 3;i++) {      //外层循环
      for(int j = 1;j <= 5;j++) {   //内层循环
        if(j == 4) {         //内层循环至第4次时就结束
          break;
        }
        System.out.println(“i=” + i + “j=” + j);
      }
    }
  }
}

输出:

i=1j=1
i=1j=2
i=1j=3
i=2j=1
i=2j=2
i=2j=3
i=3j=1
i=3j=2
i=3j=3

从运行结果可以看出:

1)循环中的 if 语句判断:如果 j 等于 4 时,执行 break 语句,则中断了内层的循环,输出的 j 值最大到 3 为止;

2)外层的循环没有受到影响,输出的 i 值最大为 3,正是 for 循环设定的最大值;

修改代码,给外层循环添加一个名为 Loop 的标签,让内层循环结束 Loop:

public class BreakInsideNested {
  public static void main(String[] args) {
    Loop:for(int i = 1;i <= 3;i++) {    //外层循环,添加了标签
        for(int j = 1;j <= 5;j++) {   //内层循环
          if(j == 4) {       //内层循环至第4次时就结束
            break Loop;      //结束指定位置的循环
          }
          System.out.println(“i=” + i + “j=” + j);
        }
      }
  }
}

输出:

 

i=1j=1
i=1j=2
i=1j=3

当 j 的值等于 4 时,直接结束外层循环,i 的值不再增加。

continue 语句

continue 语句不是立即跳出循环体,而是跳过本次循环,回到循环的条件测试部分,重新开始执行循环。

创建ContinueTest类,编写 for 循环从 1 循环至 20,如果当前循环的次数为偶数,则使用 continue 语句跳过循环:

public class ContinueTest {
  public static void main(String[] args) {
    for(int i = 1;i <= 20;i++) {
      if(i % 2 == 0) {      //如果 i 是偶数
        continue;      //跳到下一循环
      }
      System.out.println(i);    //输出 i 的值
    }
  }
}

输出:

1
3
5
7
9
11
13
15
17
19

与 break 一样,continue 也支持标签功能:

标签名:循环体{

  continue 标签名;

}

标签名:任意标识符

循环体:任意循环语句

continue 标签名:continue 跳出指定的循环体,此循环体的标签名必须与 continue 的标签名一致.

 

原创文章,作者:254126420,如若转载,请注明出处:https://blog.ytso.com/tech/java/274399.html

(0)
上一篇 2022年7月14日 22:44
下一篇 2022年7月14日 23:05

相关推荐

发表回复

登录后才能评论