当前位置: 首页 > news >正文

3.4循环控制

        循环控制包含两方面的内容,一方面是控制循环变量的变化方式,另一方面是控制循环的跳转。控制循环的跳转需要用到break和continue两个关键字,这两条跳转语句的跳转效果不同,break语句是中断循环,continue语句是执行下一次循环。

3.4.1 break语句

        使用break语句可以跳出switch结构。在循环结构中,同样也可用break语句跳出当前循环体,从而中断当前循环。
【例1】输出1~20出现的第一个偶数
创建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---");    //结束时输出一行文字}
}

运行结果如下:
2
---end---

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

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

标签名:循环体{
break 标签名;
}

        ☑  标签名:任意标识符。
☑  循环体:任意循环语句。
☑ break标签名:break跳出指定的循环体,此循环体的标签名必须与break的标签名一致。

        带有标签的break可以指定跳出的循环,这个循环可以是内层循环,也可以是外层循环。
【例2】使用标签让break结束外层循环
创建BreakInsideNested类,在该类中写两层for循环,第一层for语句循环3次,第二层for语句循环5次。当第二层for语句循环至第4次时,强行用break中断循环。输出程序执行时外层循环和内层循环各循环了多少次。

public class BreaklnsideNested{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=1 j=1
i=1 j=2
i=1 j=3
i=2 j=1
i=2 j=2
i=2 j=3
i=3 j=1
i=3 j=2
i=3 j=3

        从这个运行结果可以看出:
☑ 循环中的if语句判断:如果j等于4时,执行break语句,则中断了内层的循环,输出的j值最大到3为止。
☑ 外层的循环没有受任何影响,输出的i值最大为3,正是for循环设定的最大值。
现在改一下这段代码,给外层循环添加一个名为Loop的标签,让内层循环结束Loop,再查看运行结果。

public class BreaklnsideNested{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=1 j=1
i=1 j=2
i=1 j=3

        从这个结果可以看出,当j的值等于4时,直接结束外层循环,i的值不再增加。

3.4.2 continue语句

        continue语句是针对break语句的补充。continue不是立即跳出循环体,而是跳过本次循环,回到循环的条件测试部分,重新开始执行循环。在for循环语句中遇到continue后,首先执行循环的增量部分,然后进行条件测试。在while和do...while循环中,continue语句使控制直接回到条件测试部分。
【例3】输出1~20的奇数
创建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的标签名一致。

http://www.dtcms.com/a/503954.html

相关文章:

  • 上海发乐门网站建设公司鞍山招聘网最新招聘
  • FastAPI之 Python的类型提示
  • 注意力机制(Attention)介绍和示例
  • 做网站要实名吗呼和浩特网站运营公司
  • 做网站二维码怎样自己做网络推广网站
  • 望牛墩做网站中国空间站对接成功
  • 6.3 文件传输协议 (答案见原书 P277)
  • BLDC电机矢量控制(FOC)深度解析:从理论到实践
  • MySQL中常见的锁
  • 浙江杭州seo网站建设网站优化在微信上做网站
  • 招商网站平网站平台地方购物网站盈利模式
  • 网站建设培训心得南京紫米网络科技有限公司
  • 【C++基本功】C++适合做什么,哪些领域适合哪些领域不适合?
  • 怎么做酒店网站网页设计教程ppt
  • 深圳宝安美容医院网站建设想学网站建设优化去哪
  • 分布式组件【ZooKeeper】
  • 基于windows 11 的python编译开发环境部署
  • 建设银行江苏分行网站最新消息今天的新闻
  • STM32G474单片机开发入门(十七)DAC详解及输出电压和正弦波实战
  • 免费做二维码网站网站内容设计遵循的原则有
  • 一家专门做原产地的网站wordpress产品图片框
  • Annual Comedy Competition (Season 1)
  • 网站开发json解析大连seo代理计费
  • 网站失败后怎么重新建设创建全国文明城市简报
  • LLMs-from-scratch(第4章:从零开始实现GPT模型以生成文本)
  • 密钥管理:AWS KMS信封加密,数据密钥轮换?
  • 单独复习一下 BCD码 和 余3码 的关系
  • 1. Qt 基础
  • 网站专题策划方案书直播app开发教程
  • Process Monitor 学习笔记(5.15):三大经典实战(文件被占用 / 启动慢 / 权限失败)与标准排错流程