嵌入式初学-C语言-十一
#接嵌入式初学-C语言-十,以及部分例题#
循环结构
break和continue
break
功能:
1. 用在switch中,用来跳出switch的case语句;如果case没有break,可能会产生case穿透。
2. 用在循环中(while、do..while、for..),提前结束循环,也就是跳出整个循环。
说明:
1. break不能用于循环语句和switch语句之外的任何其它语句之中。
2. break只能终止并跳出最近一层的结构。 图示:

案例:
/**
* 需求:break案例-同学参与一阶段分段考试,如果考试及格,就跳出循环,否则就一直考
*/#include <stdio.h>int main()
{printf("一阶段分段考试\n");// 声明一个变量,用来存放考试成绩int score = 0;do{// int score = 78; // score的作用域只能作用域到{}以内printf("开始一阶段分段考试...\n");scanf("%d",&score);// 开始合格,结束考试if(score >= 60){break;}}while(1);printf("恭喜你考试通过!\n");return 0;
}
案例:
/**
* 需求:break案例-输出1~100以内的偶数,只输出前10个
*/#include <stdio.h>int main()
{for(int i = 1,count = 1;i <= 100;i++){if(i % 2 == 0){if(count > 10){break;}count++;// 注意位置:只记录偶数printf("%d\t",i);}}printf("\n");return 0;
}
continue
功能:continue语句不会结束整个循环,而是跳过本次循环尚未执行的语句,进入下一次循环。
说明:
1. 仅用于循环语句中。
2. 在嵌套循环的情况下,continue语句只对包含它的最内层的循环体语句起作用。
图示:

案例:
/**
* 需求:continue案例-求1~100之内的偶数和
*/#include <stdio.h>// 不使用continue
void fun01()
{int sum = 0;for(int i = 1; i <= 100; i++){// 判断偶数if(i % 2 == 0){sum += i;}}printf("1~100之内的偶数和是:%d\n",sum);
}// 使用continue
void fun02()
{int sum = 0;for(int i = 1; i <= 100; i++){// 判断奇数if(i % 2 != 0){continue;// 跳出所有的奇数}sum += i;}printf("1~100之内的偶数和是:%d\n",sum);
}int main()
{fun01();fun02();
}
跳出多层循环
跳出多层循环是不能使用break和continue的,因为他们只能跳出单层循环,跳出多层循环,需要 我们自己定义标志位进行跳出。
案例:
// 定义一个标志位
int isFlag = 1;// 默认循环成立
char fu;
while(isFlag)
{printf("第一层循环执行的内容...\n");while(isFlag){printf("第二层循环执行的内容...\n");printf("是否跳出循环?(y/n)");scanf("%c",&fu);if(fu == 'Y' || fu == 'y'){isFlag = 0;}}
}
注意:如果是多层循环,进的时候是从外到内,跳出的时候是从内到外。
习题:
1.计算n以内所有正奇数的和 ? n值通过键盘输入
1 /*2 需求:计算n以内所有正奇数的和 ? n值通过键盘输入3 */4 #include <stdio.h>5 6 int main()7 {8 int sum = 0;9 int a = 0;10 11 printf("请输入一个正值:");12 scanf("%d",&sum);13 14 for(int i = 1;i <= sum;i++)15 {16 if(i % 2 != 0)17 {18 a += i;19 }20 }21 22 printf("正奇数和为:%d\n",a);23 24 return 0;25 }

2.计算 1 + 1/(2 * 3) + 1/(3 * 4) + ...+ 1/(n * (n + 1)) = ?直到最后一相值小于0.00001为至。
1 /*2 计算 1+1/(2*3)+1/(3*4)+...+1/(n*(n+1))=?直到最后一相值小于0.00001为至。3 */4 #include <stdio.h>5 6 int main()7 {8 double sum = 1.0;9 double i = 1.0;10 do11 {12 13 sum = sum + 1.0 / ((i + 1) * (i + 2));14 i++;15 16 }while(1.0 / ((i + 1) * (i + 2)) >= 0.00001);17 18 19 printf("%lf\n",sum);20 21 return 0;22 }

3.计算1+1/2 - 1/3 + 1/4 - 1/5 ...+1/n= ? n通过键盘输入
1 /*2 需求:计算1+1/2 - 1/3 + 1/4 - 1/5 ...+1/n= ? n通过键盘输入3 */4 #include <stdio.h>5 6 int main()7 {8 int a;9 int b = 2;10 double sum = 1; //找出题目的关系为1加上n分之1,再减n+1分之1,将算是前1直接赋给sum,利于找出关系表达式11 printf("请输入一个数字:\n");12 scanf("%d",&a);13 14 do15 {16 if(b % 2 == 0) //题目可知被二整除为加号17 {18 sum += 1.0 / b;19 }20 else //不被二整除为减号21 {22 sum -= 1.0 / b;23 }24 b++;25 }while(b <= a); //当b大于输入值时跳出循环26 27 printf("输出的值为:%f\n",sum);28 29 30 31 return 0;32 }

4.计算n的阶乘 ? n! = 123.....*n n值通过键盘输入
1 /*2 需求:计算n的阶乘 ? n! = 123.....*n n值通过键盘输入3 */4 #include <stdio.h>5 6 int main()7 {8 int b = 0,sum = 1; //sum要算乘法所以赋值不能为09 printf("请输入一个整数数值:");10 scanf("%d",&b);11 12 for(int a = 1;a <= b;a++) //当a循环到大于输入值b时停止循环13 {14 sum *= a; //等价于 sum = sum * a15 }16 17 printf("你输入的数值%d的阶乘为%d\n",b,sum);18 19 return 0;20 }

5.输出半径为1~10的圆面积,面积大于100时停止
1 /*2 需求:输出半径为1~10的圆面积,面积大于100时停止3 */4 #include <stdio.h>5 6 int main()7 {8 double s = 1.0;9 int r = 1;10 double PI = 3.1415926;11 while(1) //当前循环为死循环,但是是可控制死循环12 {13 s = PI * r * r; //圆的面积=pi×r×r14 r++;15 if(s > 100)16 {17 break; //面积大于100,提前跳出,不再输出18 }19 printf("当前圆的面积为:%.3f\n",s); //每次输出圆的面积20 }21 22 printf("输出结束!\n");23 24 return 0;25 }

相关文章:
嵌入式初学-C语言-十一
#接嵌入式初学-C语言-十,以及部分例题# 循环结构 break和continue break 功能: 1. 用在switch中,用来跳出switch的case语句;如果case没有break,可能会产生case穿透。 2. 用在循环中(while、do..while、for..&#…...
浅谈几个常用OJ的注册方式
众所周知,好的OJ是成功的一半,但是有些英文OJ的注册很让人伤脑筋。 CodeForces 点进官网 戳这里 然后就会进入这个页面 在这一页里面里填写好信息即可 最后,一个邮件就会发到你的邮箱上,点击其中的链接即可激活账号 AtCoder …...
Html实现全国省市区三级联动
目录 前言 1.全国省市区的Json数据 2.找到Json数据文件(在此博文绑定资源)之后,放到resource目录下。 3.通过类加载器加载资源文件,读取Json文件 3.1 创建JsonLoader类 3.2 注入JsonLoader实体,解析Json文件 4.构建前端Html页面 5.通过…...
前端构建工具Webpack 与 Vite 大对比
在现代前端开发领域,构建工具扮演着至关重要的角色。它们不仅可以帮助我们管理项目依赖关系,还可以优化我们的代码,使其在生产环境中运行得更快更高效。其中两个最受欢迎的构建工具就是 Webpack 和 Vite。在这篇文章中,我们将深入…...
Ubuntu-22.04环境搭建
安装wget(一般ubuntu会自带) sudo apt-get install wget 更换国内软件源 先备份原来的/etc/apt/source.list⽂件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 防止修改错误 导致无可挽回 将下列国内镜像源 写入原来的/etc/apt/source.list⽂件(注…...
嵌入式学习---DAY17:共用体与位运算
链表剩余的一些内容 一、共用体 union 共用体名 名称首字母大写 { 成员表列; }; union Demo {int i;short s;char c; }; int main(void) {union Demo d;d.i 10;d.s 100;d.c 200;printf("%d\n", sizeof(d)); /…...
蓝牙网关和蓝牙MESH总结
可参考: https://zhuanlan.zhihu.com/p/695144946 蓝牙网关 参考: https://www.bilibili.com/read/cv28872282/ 蓝牙网关是一种特殊的网络设备,它能够实现蓝牙设备与互联网或其他类型网络之间的数据传输和通信。通过蓝牙网关,用户…...
了解关于标准化的知识
1.标准化组织 1.1国家标准化管理委员会(Standardization Administration of the Peoples Republic of China,简称SAC) TC--(Technical Committee) 技术委员会. SAC/TC,就是“国家标准化管理委员会”下属的一个专项或一个行业的“技术委员会或技术小组”&a…...
【云原生】数据库忘记密码怎么办?
相信很多人都会遇到在虚拟机中忘记数据库密码的情况,想必大家都很苦恼,所以今天给大家来讲讲数据库忘记密码了如何修改密码再登录数据库!!! 1、关闭数据库服务 systemctl stop mariadb 2、执行MySQL 服务器在启动时跳…...
Postman 接口测试详解
Postman 接口测试详解 Postman 接口测试详解1. Postman 基础知识1.1 什么是 Postman?1.2 Postman 的主要功能 2. 安装与设置2.1 安装 Postman2.2 创建 Postman 账户 3. Postman 的基本操作3.1 创建和发送请求3.2 解析响应数据3.3 使用环境和变量 4. 进阶功能4.1 编写…...
【JavaEE】线程状态
目录 前言 一.线程状态图 二.线程状态 1.初始状态(NEW) 2.运行状态(RUNNING) 3.等待状态(WAITING) 4.超时等待(TIMED_WAITING) 5.阻塞状态(BLOCKED) 6.终止状态(TERMINATED) 三.线程状态间的转换 四.总结 前言 线程状态及其状态转换…...
C++笔记之编译过程和面向对象
回顾: “abcd”//数据类型 字符串常量 const char *p"abc"; new STU const char *//8 指针的内存空间 int float 指针的内存空间 p 指针指向的内存空间 "abc" 取决于字符串长度 指针变量的内容一级指针 指针变量的地址二级指针 …...
ModuleNotFoundError: No module named ‘tqdm‘
报错信息: tqdm是一个快速、可扩展的Python进度条库,用于展示迭代器的长循环执行进度。 解决:通过以下命令安装 使用conda命令安装 conda install tqdm使用pip安装: pip install tqdm...
东京电影节公布2024年竞赛片评审团成员并对其业绩分别进行评介 没什么含金量
第37届东京国际电影节竞赛单元评审团名单正式公布。 周五,电影节组织者宣布,香港电影制片人杜琪峰、匈牙利电影制片人伊尔迪科恩耶迪、日本女演员桥本爱和法国女演员基娅拉马斯楚安尼将与之前宣布的评审团主席梁朝伟一起担任 2024 年主竞赛评审团成员。 …...
智能景区垃圾识别系统:基于YOLO的深度学习实现
基于深度学习的景区垃圾识别系统(UI界面YOLOv8/v7/v6/v5代码训练数据集) 1. 引言 景区垃圾识别是环保管理的重要任务之一。传统的人工清理方式效率低、成本高,而借助深度学习技术可以实现自动化的垃圾检测与识别,提高景区的清洁…...
ventoy和微pe可以共存吗?ventoy和pe共存使用教程
Ventoy新一代多系统启动U盘解决方案。国产开源U盘启动制作工具,支持Legacy BIOS和UEFI模式,理论上几乎支持任何ISO镜像文件,支持加载多个不同类型的ISO文件启动,无需反复地格式化U盘,插入U盘安装写入就能制作成可引导的…...
如何获取和安装SSL证书
SSL(Secure Sockets Layer)证书是用于加密网站服务器和客户端之间通信的一种数字证书。它通过HTTPS协议保护数据传输的安全性,防止数据被窃听或篡改。本文将指导您如何为您的网站获取并安装SSL证书。 步骤1:选择SSL证书提供商 首…...
makefile在IC设计中的使用笔记
1 makefile在IC设计中的地位 关于makefile的详细介绍可以参考第一个连接,里面的内容很多也很详细。但在数字IC设计中,并不会把所有的用法都用到,下面记录一下主要用到的规则。 2 IC设计涉及到的主要用法 2.1 变量的定义和使用 在makefile…...
Suno声称在受版权保护的音乐上训练模型属于“合理使用“
继美国唱片业协会(RIAA) 最近对音乐生成初创公司 Udio 和 Suno 提起诉讼之后,Suno 在周四提交的一份法庭文件中承认,该公司确实使用了受版权保护的歌曲来训练其人工智能模型。但它声称,根据合理使用原则,这…...
Java | Leetcode Java题解之第316题去除重复字母
题目: 题解: class Solution {public String removeDuplicateLetters(String s) {boolean[] vis new boolean[26];int[] num new int[26];for (int i 0; i < s.length(); i) {num[s.charAt(i) - a];}StringBuffer sb new StringBuffer();for (in…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
高考志愿填报管理系统---开发介绍
高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发,采用现代化的Web技术,为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## 📋 系统概述 ### 🎯 系统定…...
