【C语言】基础语法3:控制流程结构
上一篇:运算符和表达式
下一篇:函数和递归
❤️🔥前情提要❤️🔥
欢迎来到C语言基本语法教程
在本专栏结束后会将所有内容整理成思维导图(结束换链接)并免费提供给大家学习,希望大家纠错指正。本专栏将以基础出发,在之后的教程中将会不断学习并详细讲解C语言的基本语法
及其高级用法
。
上一节讲了C语言基础中的运算符和表达式,接下来让我们来一起学习C语言中的控制流程结构
。学习完成后可以点击C语言控制流程结构中20个注意事项及代码示例进行学习。
🍪本教程内容干货满满,跟上步伐吧~🍪
作者介绍:
🎓 作者:某不知名编程爱好者📜
🗒️系列文章&专栏推荐: 🔗《华为机试题解析》 、🔗《C语言程序设计》、🔗 《MySQL数据库》
🕸️为大家推荐一款很好用的C语言刷题网站🔗点击跳转
🔖导航小助手🔖
- 📑 1. 顺序结构
- 📑 2. 分支结构
- 🏷️ 2.1 if语句
- 🏷️ 2.2 if-else语句
- 🏷️ 2.3 switch语句
- 📑 3. 循环结构
- 🏷️ 3.1 while语句
- 🏷️ 3.2 do-while语句
- 🏷️ 3.3 for语句
- 📑 4. 跳转结构
- 🏷️ 4.1 break语句
- 🏷️ 4.2 continue语句
- 🏷️ 4.3 goto语句
- ⚠️ 5. 注意事项
📑 1. 顺序结构
顺序结构是指程序按照代码的书写顺序依次执行
,没有任何分支或循环。顺序结构是C语言中最基本的控制流程结构,下面是一个简单的顺序结构示例:
#include <stdio.h>int main() {printf("Hello, World!\n");printf("这是一个简单的程序\n");return 0;
}
上述示例程序中,两个printf语句依次执行
,输出了两个字符串。
📑 2. 分支结构
💡 概念
分支结构是指程序根据不同的条件
选择不同的执行路径
。C语言中常用的分支结构包括if语句
、if-else语句
和switch语句
。
🏷️ 2.1 if语句
if语句用于判断一个条件是否成立
,如果成立则执行一段代码,否则不执行。下面是一个简单的if语句示例:
#include <stdio.h>int main() {int a = 10;if (a > 0) {printf("a是一个正数\n");}return 0;
}
上述示例程序中,if语句判断变量a是否大于0,如果成立则输出一条字符串。
🏷️ 2.2 if-else语句
💡 概念
if-else语句用于判断一个条件是否成立,如果成立则执行一段代码,否则执行另一段代码。下面是一个简单的if-else语句示例:
#include <stdio.h>int main() {int a = 10;if (a > 0) {printf("a是一个正数\n");} else {printf("a不是一个正数\n");}return 0;
}
上述示例程序中,if-else语句判断变量a是否大于0,如果成立则输出一条字符串,否则输出另一条字符串。
🏷️ 2.3 switch语句
switch语句用于根据不同的条件
选择不同的执行路径
。它可以替代
多个if-else语句
。下面是一个简单的switch语句示例:
#include <stdio.h>int main() {int a = 2;switch (a) {case 1:printf("a是1\n");break;case 2:printf("a是2\n");break;default:printf("a不是1或2\n");break;}return 0;
}
上述示例程序中,switch语句根据变量a的值选择执行不同的代码段。
📑 3. 循环结构
💡 概念
循环结构是指程序可以重复执行某一段代码
,直到满足
某个条件
才停止
。C语言中常用的循环结构包括while语句
、do-while语句
和for语句
。
🏷️ 3.1 while语句
while语句用于重复执行
一段代码,直到满足某个条件才停止。下面是一个简单的while语句示例:
#include <stdio.h>int main() {int a = 0;while (a < 10) {printf("a = %d\n", a);a++;}return 0;
}
上述示例程序中,while语句重复执行printf语句,直到变量a的值大于等于10。
🏷️ 3.2 do-while语句
do-while语句与while语句类似,但是它先执行一次代码
,然后再判断条件
是否成立。下面是一个简单的do-while语句示例:
#include <stdio.h>int main() {int a = 0;do {printf("a = %d\n", a);a++;} while (a < 10);return 0;
}
上述示例程序中,do-while语句先输出一次printf语句,然后重复执行,直到变量a的值大于等于10。
🏷️ 3.3 for语句
for语句用于重复执行一段代码,可以在循环过程中控制循环变量的值。下面是一个简单的for语句示例:
#include <stdio.h>int main() {int i;for (i = 0; i < 10; i++) {printf("i = %d\n", i);}return 0;
}
上述示例程序中,for语句重复执行printf语句,循环变量i的初始值为0,每次循环加1,直到i的值大于等于10。
📑 4. 跳转结构
💡 概念
跳转结构是指程序可以跳过某一段代码
,直接执行其他代码。C语言中常用的跳转结构包括break语句
、continue语句
、goto语句
和return语句
。
🏷️ 4.1 break语句
break语句用于跳出循环
,执行循环外的代码。下面是一个简单的break语句示例:
#include <stdio.h>int main() {int i;for (i = 0; i < 10; i++) {if (i == 5) {break;}printf("i = %d\n", i);}return 0;
}
上述示例程序中,for循环执行5次后,遇到i等于5的情况,执行break语句跳出循环。
🏷️ 4.2 continue语句
continue语句用于跳过本次循环
,继续下一次循环。例如:
for (int i = 0; i < 5; i++) {if (i == 3) {continue;}printf("%d\n", i);
}
上述代码中,当i等于3时,continue语句会跳过本次循环,继续下一次循环。
🏷️ 4.3 goto语句
goto语句用于无条件跳转到指定标签处
执行。例如:
goto label;
printf("Hello, world!\n");
label:
printf("Goodbye, world!\n");
上述代码中,goto语句会跳转到label标签处执行,输出"Goodbye, world!"。
⚠️ 5. 注意事项
控制流程结构是程序设计中最基本的概念之一,包括顺序结构、分支结构、循环结构和跳转结构。在编写程序时,需要注意以下几点:
-
顺序结构:
- 尽可能让代码
简洁明了
,避免冗余代码的出现。 - 可以使用函数来封装一段代码,提高代码的
可重用性
。 - 应该注意代码的执行效率,尽可能
减少不必要的计算和操作
。
- 尽可能让代码
-
分支结构:
- 应该考虑不同情况下的处理方式,确保程序的
鲁棒性
。 - if语句中,应该使用逻辑运算符来组合多个条件,
避免
使用过多的if语句
。 - switch语句中,应该在
default语句
中添加错误处理代码
,确保程序的健壮性
。
- 应该考虑不同情况下的处理方式,确保程序的
-
循环结构:
- 应该注意循环
体内的代码
是否会产生副作用
,避免出现不可预期的结果。 - while循环中,应该
避免使用无限循环
,可以添加计数器或者时间限制来控制循环次数。 - for循环中,应该注意循环体内的代码是否会改变循环变量的值,
避免出现死循环
。
- 应该注意循环
-
跳转结构:
- 应该慎重考虑,确保程序的
结构和逻辑清晰
明了。 - 使用break语句时,应该
避免在循环嵌套中使用
,可以使用标志变量来控制循环的跳出。 - 使用goto语句时,应该遵循良好的编程习惯,避免使用goto语句来
跨越函数
和文件边界
。
- 应该慎重考虑,确保程序的
上一篇:运算符和表达式
下一篇:函数和递归
## 🎀小结
⚡恭喜你的内功又双叒叕得到了提高!!!🔋
🔚以上就是C语言控制流程结构
的全部知识了~
🤗感谢大家的阅读~
📬后续还会继续更新💓,欢迎持续关注哟~📌
💫如果有错误❌,欢迎指正呀💫
✨如果觉得收获满满,可以点点赞👍支持一下哟~✨
相关文章:

【C语言】基础语法3:控制流程结构
上一篇:运算符和表达式 下一篇:函数和递归 ❤️🔥前情提要❤️🔥 欢迎来到C语言基本语法教程 在本专栏结束后会将所有内容整理成思维导图(结束换链接)并免费提供给大家学习,希望大家…...
MySQL安全性:防止攻击和保护数据
MySQL安全性:防止攻击和保护数据 MySQL是当今最流行的关系型数据库之一,然而,随着Internet的普及,数据库安全问题也越来越受到关注。在这篇文章中,我们将重点介绍MySQL的安全性问题,以及如何防止攻击和保护…...
R语言结构方程模型(SEM)
详情点击链接:R语言结构方程模型(SEM)生态学领域应用 一,R语言SEM分析入门:lavaan VS piecewiseSEM 结构方程模型在生态学研究中的应用及模型结构方模型估计方法:局域估计和全局估计的基本工作原理、主要…...

软件or硬件?硬件的前途到底在哪里?
一、硬件明明比软件更难,国内的硬件技术也不如软件,为什么硬件工程师待遇还不如软件? 1、不需要太高层次的硬件设计,比如大部分小家电企业,简单的电子产品企业,单片机简单外围设计就够了,单片机…...

同学在外包干了两年的点点点,24岁人就快废了
前言 简单的说下,我大学的一个同学,毕业后我自己去了自研的公司,他去了外包,快两年了我薪资、技术各个方面都有了很大的提升,他在外包干的这两年人都要废了,技术没一点提升,学不到任何东西&…...

基于Java springboot 疫情在线网课管理系统
博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 文章目录 一、前言介绍1.1 背景及意义1.2 系统运行环境…...

Unity Camera -- (3)控制相机能看到的东西
使用剪裁平面(Clipping Planes)定义相机可视范围 Clipping Planes定义了相机所能看到的场景范围。在有些时候,限制相机所能看到的范围是出于风格上的考量,但编辑Clipping Planes的主要目的是为了优化性能。相机所需要渲染的东西越…...

《基于深度迁移学习的可穿戴睡眠阶段分类》阅读笔记
一、摘要 佩戴可穿戴设备进行睡眠监测是一种无创、便捷的方法,可以提高睡眠障碍筛查和健康监测的效率。然而,由于缺乏大规模、标准化的PPG数据集,使用PPG进行睡眠阶段分类仍然具有挑战性。本文提出了一种基于深度迁移学习的方法来解决这个问…...
java版工程管理系统源码企业工程项目管理系统简介
一、立项管理 1、招标立项申请 功能点:招标类项目立项申请入口,用户可以保存为草稿,提交。 2、非招标立项申请 功能点:非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点:对草稿进行编辑&#x…...

机器学习算法 决策树
文章目录 一、决策树的原理二、决策树的构建2.1 ID3算法构建决策树2.2 C4.5 算法树的构建2.3 CART 树的创建 三、决策树的优缺点 一、决策树的原理 决策树(Decision Tree)是一种非参数的有监督学习方法,它能够从一系列有特征和标签的数据中总…...

论文笔记:An Interactive-Voting Based Map Matching Algorithm
2010 MDM 1 ST-matching的问题 论文笔记:Map-Matching for low-sampling-rate GPS trajectories(ST-matching)_UQI-LIUWJ的博客-CSDN博客 当轨迹很长,且车辆通过多线平行的道路时,ST-Matching的效果较差,…...

_awt_container容器_演示
Component作为基类,提供了如下常用的方法来设置组件的大小、位置、可见性等。 方法签名方法功能setLocation(int x,int y)设置组件的位置setSize(int width,int heigth)设置组件的大小setBounds(int x,int y,int width,int heigth)设置组件的位置,大小。…...

TryHackMe-Misguided Ghosts(boot2root)
Misguided Ghosts 端口扫描 循例nmap FTP枚举 直接登anonymous,有几个文件,下下来 info.txt 我已经包含了您要求的所有网络信息,以及一些我最喜欢的笑话。- 帕拉摩尔该信息可能指的是pcapng文件 jokes.txt Taylor: Knock, knock. Josh: …...

【Leetcode】10. 正则表达式匹配
10. 正则表达式匹配(困难) 题解 如果从左向右进行匹配的话,需要考虑字符后是否有 * 。 因此选择从右向左扫描更为简单。 *前面肯定有一个字符,它像是一个拷贝器,能够复制前面的单个字符,甚至也可以把这个…...

不得不说的结构型模式-装饰器模式
目录 装饰器模式是什么 下面是装饰器模式的一个通用的类图: 以下是使用C实现装饰器模式的示例代码: 下面是面试中关于桥接器模式的常见的问题: 下面是问题的答案: 装饰器模式是什么 装饰器模式是一种结构型设计模式ÿ…...

Flutter+YesAPI 快速构建零运维的APP
前言 移动互联网经过多年的发展,已经进入一个成熟的阶段,几乎每个公司都有自己的移动应用程序或移动网站。随着5G技术的不断发展,也带来了更高效的数据传输速度和更稳定的网络连接,这使得更多的应用程序和服务能够在互联网上运行&…...
使用Socks5代理保障HTTP传输的网络安全
一、引言 在互联网时代,网络安全越来越受到人们的关注,特别是在数据传输过程中,很容易出现信息泄露、窃听等安全问题。为了保障网络传输的安全性,我们可以使用代理服务器来进行传输,而Socks5代理是其中一种常用的代理…...

C语言入门篇——操作符篇
目录 1、操作符分类 2、操作符的属性 3、算术操作符 4、移位操作符 5、位操作符 6、赋值操作符 7、单目操作符 8、关系操作符 9、逻辑操作符 10、条件操作符 11、逗号操作符 12、下标引用、函数调用和结构成员 1、操作符分类 算术操作符(,-&…...

YOLOv7训练自己的数据集(txt文件,笔记)
目录 1.代码下载 2.数据集准备(.xml转.txt) (1)修改图像文件名 (2)图片和标签文件数量不对应,解决办法 (3).xml转.txt (4).txt文件随机划分出对应的训练…...

防止机械/移动硬盘休眠 - NoSleepHD
防止机械/移动硬盘休眠 - NoSleepHD 前言解决方案计算机硬盘移动硬盘 前言 机械硬盘休眠后唤醒需要一定时间,且频繁的启动和停止并不有利于硬盘的寿命,因此可根据自身需求防止机械硬盘休眠,下文以Win10系统为例介绍解决方案。 值得一提的是…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...
华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)
题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...