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

跳出多重循环

跳出多重循环

示例——用1角、2角、5角凑出一个预设的以元为单位的金额(要求整数元)

#include <stdio.h>
int main()
{int x;int one, two, five;printf("请输入需要的金额:");scanf("%d", &x);for (one = 1; one < x * 10; one++){for (two = 1; two < x * 10 / 2; two++){for (five = 1; five < x * 10 / 5; five++){if (one * 1 + two * 2 + five * 5 == x * 10){printf("可以使用%d个1角+%d个2角+%d个5角得到%d元\n", one, two, five, x);}}}}return 0;
}

输入想要的金额(元)后,以上程序会输出所有组合。在实际应用中,如果我们只需要一个组合结果的话,可以在程序中加入代码,跳出多重循环

  • 方法一
    接力break (注意:break和continue只针对它所在的这个循环,单纯加上一条break只能跳出当前循环,回到上一级循环)
#include <stdio.h>
int main()
{int x;int exit = 0;int one, two, five;printf("请输入需要的金额:");scanf("%d", &x);for (one = 1; one < x * 10; one++){for (two = 1; two < x * 10 / 2; two++){for (five = 1; five < x * 10 / 5; five++){if (one * 1 + two * 2 + five * 5 == x * 10){printf("可以使用%d个1角+%d个2角+%d个5角得到%d元\n", one, two, five, x);exit = 1;break;}}if (exit == 1)break;}if (exit == 1)break;}return 0;
}

因为break只是跳出当前循环,所以加上一个变量exit,配合if判断跳出外面的两重循环。

  • 方法二 goto
#include <stdio.h>
int main()
{int x;int one, two, five;printf("请输入需要的金额:");scanf("%d", &x);for (one = 1; one < x * 10; one++){for (two = 1; two < x * 10 / 2; two++){for (five = 1; five < x * 10 / 5; five++){if (one * 1 + two * 2 + five * 5 == x * 10){printf("可以使用%d个1角+%d个2角+%d个5角得到%d元\n", one, two, five, x);goto end;}}}}
end:return 0;
}

格式goto 标号,这个标号可以自定义,注意格式和放置的位置。
goto使用要谨慎,因为有观点认为goto破坏了程序的结构。但在这种情况下,即在循环最内层跳出的时候很管用。

http://www.xdnf.cn/news/1029205.html

相关文章:

  • Power BI Streaming dataset - 模拟监测水库的水位情况
  • 【2025 CVPR-Backbone】Building Vision Models upon Heat Conduction
  • 57、原生组件注入-【源码分析】DispatcherServlet注入原理
  • Windows系统 整个D盘均无法新建文件夹,D盘权限无法直接添加
  • 认识LinkedHashMap
  • catelen数到二叉树节点的联想
  • C语言:字符函数
  • 高低温介电温谱测量系统在实际应用中有哪些具体的挑战?
  • 体系结构论文(八十六):The Dark Side ofComputing: SilentData Corruptions
  • 爱玛乐维CA510至臻版发布,品质跃迁塑造休三天花板
  • 【论文写作参考文献地址】
  • SSH远程连接到Windows服务器
  • 【树合集】
  • 纯免费的零基础建站教程
  • 从Seq2Seq到QKV:深度解析注意力机制的核心逻辑
  • Python|GIF 解析与构建(6):手搓 tk 录制工具
  • 【互联网基础】互联网公司机房怎么设计
  • Python训练营-Day30-模块和库的导入
  • EDW2025|从传统BI到AI Ready:企业数据与分析能力的实施策略演进
  • Java 锁升级机制详解
  • 芯片测试之VIL/VIH(输入电平)Test全解析:从原理到实战
  • 高通IPA硬件加速介绍
  • 03 | 大模型微调 | 从0学习到实战微调 | 玩转Hugging Face与Transformers框架
  • manpath: can‘t set the locale; make sure $LC_* and $LANG are correct
  • 设备管理-Udev(一)
  • E10集成登录三方系统
  • Python基础补漏
  • ESP32服务器端编码
  • SAM分割一切-使用SAM自动生成对象掩码示例
  • NB/T 32004-2018测试是什么,光伏并网逆变器NB/T 32004测试项目