还是用一个程序的题目来展开这一节:

凑硬币:
如何用1角、2角、5角的硬币凑出10元以下的金额呢?

我们来看一下,三个for循环的代码:

#include<stdio.h>
int main()
{int x;int one, two, five;//这块设定3个变量,分别来计算1角、2角、5角的每个的个数是多少。scanf_s("%d", &x);for (one = 1; one < x * 10; one++){//这块的判定结束的是把要换的钱,全部换成1角、2角、5角。for (two = 1; two < x * 10 / 2; two++){for (five = 1; five < x * 10 / 5; five++){if (one + two * 2 + five * 5 == x * 10){//判断是否可以满足。printf("可以用%d个1角加%d个2角加%d个5角得到%d元\n", one, two, five, x);}}}}return 0;
}

题目改变一下:我们只要求输出一次3种硬币的组合就可以了,这个时候可以终止循环了。

注意,break和continue的使用条件是只能跳出它所在的那一个循环,如果外面还有更多的循环,那样的话,就再跳不出去了。

我们这边还是使用跟前面几乎一样的方法来进行处理,就是,设定一个变量,当钱数可以表示的时候,这个变量被赋值,然后在后面的每一个循环的结束之前,加上一个if的条件语句,如果满足这个条件的话,那就执行这一重循环的break的语句。

我们再来看一下这个代码 :

#include<stdio.h>
int main()
{int x;int exit = 0;int one, two, five;//这块设定3个变量,分别来计算1角、2角、5角的每个的个数是多少。scanf_s("%d", &x);for (one = 1; one < x * 10; one++){//这块的判定结束的是把要换的钱,全部换成1角、2角、5角。for (two = 1; two < x *10 /2; two++){for (five = 1; five < x * 10 / 5; five++){if (one + two * 2 + five * 5 == x * 10){//判断是否可以满足。printf("可以用%d个1角加%d个2角加%d个5角得到%d元\n", one, two, five, x);exit = 1;break;}}if (exit)//这个就相当于if(exit==1),这个很重要,要记住,后面会用上。{break;}}if (exit)//这边添加一个笔记,当if()括号里面的数不为0的时候,就进入这个条件里面的语句中。{//当然上面所说的也不是仅仅是if,其他的if、else if、else都可以。break;}}return 0;
}

上面这个称之为:接力break.

当然我们还有其他的方法:

用goto函数,这个函数的具体的用法在下面的代码的注释里面有:

#include<stdio.h>
int main()
{int x;int one, two, five;//这块设定3个变量,分别来计算1角、2角、5角的每个的个数是多少。scanf_s("%d", &x);for (one = 1; one < x * 10; one++){//这块的判定结束的是把要换的钱,全部换成1角、2角、5角。for (two = 1; two < x *10 /2; two++){for (five = 1; five < x * 10 / 5; five++){if (one + two * 2 + five * 5 == x * 10){//判断是否可以满足。printf("可以用%d个1角加%d个2角加%d个5角得到%d元\n", one, two, five, x);goto out;//注意,这个goto语句由两个部分组成,前面的是goto out,前面是函数,后面是要到的地方的标号。}}}}out://这里表达的第二个语句就是,上面这个函数跳转的地方。注意这个的后面有一个分号。return 0;
}

当前只在有多重循环的地方使用goto,这样才能使整个程序更有逻辑感,不必像一个传送门一样来回的飘动。

C语言重来28:如何离开多重循环相关推荐

  1. go语言打印日期_go语言基础:流程控制(4)-多重循环跳转控制

    1.6 多重循环控制 1.6.1 概念解析 1)多重循环就是指将一个循环嵌套在另一个循环体内,就形成了嵌套循环.在外边的for循环称之为外层for循环,在里面的for循环称之为内层for循环.2)实质 ...

  2. r语言dataellipse_R语言绘图:28个实用程序包

    原标题:R语言绘图:28个实用程序包 全文注释 # 示例参考帮助文档 # 我用Rstudio重现了所有示例 # 初识R语言,请戳我的原创推文""与"" # 使用 ...

  3. C语言 第六章 多重循环

    目录 一.概要 二.二重循环 2.1.一重循环平行嵌套多重循环 三.三重循环 四.菱形 五.菱形与函数 六.空心菱形 一.概要 在c语言中,if,switch,for,while,do-while可以 ...

  4. break怎么跳出多层循环C语言,C/C++ 跳出多重循环方法

    C/C++ 跳出多重循环方法 c语言的break语句只能跳出离它最近的一层循环,但是我们有时候需要跳出多层循环,以下有几种跳出多重循环的方法: 1. 使用goto for (int i = 0; i ...

  5. java while语句打印三角形_java基础之五小节带你走进java流程控制—多重循环

    四.多重循环 在一个循环语句内部再嵌套一个或多个循环,称为多重循环/嵌套循环.while.do-while与for循环可以任意嵌套,可以嵌套任意多层.一般工作中多见的就是两层. 4.1 多重循环 打印 ...

  6. Python中断多重循环的几种思路

    转自: https://www.cnblogs.com/cuijianxin/p/6611751.html I. 跳出单循环 不管是什么编程语言,都有可能会有跳出循环的需求,比如枚举时,找到一个满足条 ...

  7. phpbreak跳出几层循环_php中break如何跳出多重循环的示例代码

    break是被用在上面所提的各种循环和switch语句中的.他的作用是跳出当前的语法结构,执行下面的语句.break语句可以带一个参数n,表示跳出循环的层数,如果要跳出多重循环的话,可以用n来表示跳出 ...

  8. Python中断多重循环的两种思路

    1. 跳出单循环 不管是什么编程语言,都有可能会有跳出循环的需求,比如枚举时,找到一个满足条件的数就终止.跳出单循环是很简单的,比如 for i in range(10):if i > 5:pr ...

  9. 有关对耗时很大循环进行并行化优化的探讨之二:多重循环任务的并发处理

    [引] 在上一篇有关并行化的<有关对耗时很大循环进行并行化优化的探讨 之一:并发搜索的处理>博文中,我们看到,不使用并行语言,而使用基本的编程语言配合多线程可以进行并行化处理,本文进一步将 ...

最新文章

  1. VMware Mac版本漏洞可任意执行恶意代码
  2. Eclipse实现hibernate反向工程:从数据库逆向生成实体类和hbm文件
  3. JDK反编译的两种方式
  4. ubuntu上使用sqlite3
  5. 【Python科学计算系列】概率论与数理统计
  6. 数据生态mysql_数据生态:MySQL复制技术与生产实践
  7. python iloc iat_Python Pandas Dataframe.iat[ ]用法及代码示例
  8. 有道词典在谷歌Chrome浏览器中无法取词的解决方法
  9. python模拟抛硬币_python模拟抛硬币
  10. 未来教育计算机书,未来教育计算机二级
  11. Spring_背诵英文单词
  12. numpy 5 study task
  13. linux下调试域格CLM920 NC5 pppd拨号
  14. 【java】把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。
  15. Tomcat执行startup.bat出现闪退的可能原因
  16. uni-app个人中心
  17. count()--不是单组分组函数
  18. 浅谈智能计算机的未来发展,浅谈计算机人工智能科学技术应用及发展
  19. Windows必备:五款靠谱好用的软件,简洁纯净无广告
  20. typescript77-在CRA创建支持ts的项目

热门文章

  1. 本地 服务器 共享文件,本地和云服务器文件共享
  2. Eclipse Tomcat在debug状态下修改代码就导致项目重启解决方案
  3. linux软RAId配置与管理总结,Linux下使用mdadm创建和管理软raid(转)
  4. BERT(预训练Transformer模型)
  5. 资金表实现过程方案二:资金表与冻结表分离(一)
  6. Spring Profiles详解
  7. TOM企邮后台管理员轻松管理
  8. Pico四通道汽车诊断示波器高级套装(型号:PQ180)
  9. Gopher China 2019 讲师专访 -晁岳攀
  10. Spring 注解 @Qualifier和@Primary 详细解析