04:C语言流程控制

C语言流程控制

  • 1、选择结构
    • 1.1、第一种:if ...else / if ...else if...else
    • 1.2、第二种:switch case
  • 2、循环结构
    • 2.1、第一种:for循环
    • 2.1、第二种:while循环
    • 2.2、第三种:do...while循环

在C语言程序里,一共有三种程序结构:顺序结构、选择结构(分支结构)、循环结构

1、选择结构

逻辑上有一种类型,叫bool类型(又写作boolean类型,中文叫布尔类型)。布尔类型只有两个值,真和假。

C语言中选择结构一共有两种:

1.1、第一种:if …else / if …else if…else

if (bool值)				// 如果bool值为真,则执行代码段1,否则执行代码段2
{代码段1
}
else
{代码段2
}
***********************************************************************
if (bool值1)				// 如果bool值1为真,则执行代码段1
{							// 否则则判断bool值2是否为真,若为真则执行代码段2代码段1					// 否则直接执行代码段3
}
else if (bool值2)			// 开头的if和结尾的else都只能有一个,但是中间的
{							// else if可以有好多个。代码段2
}
else
{代码段3
}

只要执行了其中的一个代码段就会立马跳出判断语句。不再会进行判断,执行下面的语句

1.2、第二种:switch case

涉及到的C语言关键字:switch case break default

switch (变量)				// 执行到这一句时,变量的值已经知道了
{							// switch case语句执行时,会用该变量的值一次与各个
case 常数1:			    	// case后的常数去对比,试图找到第一个匹配项。代码段1;			        // 找到匹配的项目后,就去执行该case对应的代码段break;				    // 如果没找到则继续下一个case,直到default。
case 常数2:				    // 如果前面的case都未匹配,则default匹配。代码段2;break;.....default:代码段n;break;
}

【注】
1、case中必须是常数,而且必须是整形(不能是float double,可以是int char)
2、一般来说,每个case中代码段后都必须有一个break;如果没有,结果可能会让你大吃一惊
3、case之后一般都会有default。语法上允许没有default,但是建议写代码时一定要写。

switch case和if else对比:
1、if else适合对比条件比较复杂,但是分支比较少的情况;switch case适合那种对比条件
不复杂,但是分支数很多的情况。
2、所有的选择结构,其实都可以用if else来实现。但是只有部分才可以用switch case实现。
一般的做法是:在适合使用switch case的情况下会优先使用switch case,如果不适合使用switch case,则不得不使用if else。

代码示例可以参考郝斌版C语言。

2、循环结构

C语言中常用的循环结构有三个:for循环、while循环、do while循环。

2.1、第一种:for循环

for (循环控制变量初始化; 循环终止条件; 循环控制变量增量)
{ 循环体 
}******************************************
eg:for(i=0;i<=4;i++)
{nihao;
}//循环次数 = 4 - 0 + 1

for循环的执行步骤:
1、先进行循环控制变量初始化
2、执行循环终止条件,如果判断结果为真,则进入第3步;如果为假则循环终止,退出。
3、执行循环体。
4、执行循环控制变量增量,转入第2步。
以例子位例:由此可见,i = 0只执行一次,进入循环后,就不在执行i = 0了,执行完循环后i的值位5

int i = 0;                 int i = 0;
for(;i<=4;i++)             for( ;i<=4;)
{						   {			nihao;                     nihao;i++;
}                          }
//这2段代码和上面的例子代码等价的

【注】

for(; ;);//此乃死循环

2.1、第二种:while循环

i = 1;
sum = 0;					// 循环初始化
while (i < 100)				// 终止条件
{printf("i = %d.\n", i);sum += i;				// 循环体i += 2;					// 循环控制增量,属于循环体的一部分
}

while循环的执行步骤:
1、首先是循环初始化。这一部分其实不属于while循环本身。
2、先判断终止条件是否满足。如果是真,则进入第2步;否则直接退出。
3、执行循环体,然后转入第2步。

while(1);//死循环

2.2、第三种:do…while循环

i = 1; sum = 0;					// 初始化条件
do
{ 	printf("i = %d.\n", i); 	sum += i;i += 2;					// 增量,循环体的一部分
}
while (i < 100);			// 终止条件,记住这里有个;号

do while循环的执行步骤:
1、首先是循环初始化。这一部分其实不属于do while循环本身。
2、执行循环体(循环控制变量的增量是循环体的一部分)
3、判断终止条件。若成立,则转入2;若不成立则退出

while循环和do while循环哪里不同?while循环是先判断后执行,do while循环是先执行后判断等循环开始转了之后,其实是一样的。do…while循环中循环体一定会执行一次。

代码示例可以参考郝斌版C语言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/42793.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么要考数据库证书?

考取数据库证书有多方面的理由和好处&#xff0c;这些好处不仅限于个人职业发展&#xff0c;也涉及到提升专业技能、增强竞争力以及获得行业认可等方面。以下是一些主要的原因&#xff1a; 提升专业技能&#xff1a;数据库证书考试通常要求考生掌握一定的数据库理论知识和实践技…

Java数据结构9-排序

1. 排序的概念及引用 1.1 排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录…

【vuejs】vue-router多层级路由配置以及页面嵌套的处理

1. 多层级页面嵌套概念 1.1 什么是多层级页面嵌套 多层级页面嵌套指的是在单页面应用&#xff08;SPA&#xff09;中&#xff0c;页面结构由多个嵌套的组件组成&#xff0c;每个组件可能代表不同的页面或页面区域。这种结构允许开发者将应用组织成多个模块&#xff0c;每个模…

认证资讯|Bluetooth SIG认证

在当今高度互联的世界中&#xff0c;无线技术的普及已经成为我们生活和工作中不可或缺的一部分。作为领先的无线通信技术之一&#xff0c;Bluetooth技术以其稳定性、便捷性和广泛的应用场景而备受青睐。然而&#xff0c;要想在激烈的市场竞争中脱颖而出&#xff0c;获得Bluetoo…

6、Redis系统-数据结构-04-Hash

四、哈希表&#xff08;Hashtable&#xff09; 哈希表是一种高效的键值对数据结构&#xff0c;通过散列函数将键映射到表中的位置&#xff0c;实现快速的插入、删除和查找操作。Redis 广泛使用哈希表来实现 Hash 对象和数据库的键值存储。以下将从结构设计、哈希冲突与链式哈希…

深入源码,探究#、$号替换符的区别

在Mybatis的日常使用过程中以及在一些技术论坛上我们都能常常听到&#xff0c;不要使用$符号来进行SQL的编写&#xff0c;要使用#符号&#xff0c;否则会有SQL注入的风险。那么&#xff0c;为什么在使用$符号时会有注入的风险呢&#xff0c;以及#号为什么不会有风险呢&#xff…

C/C+++服务器之libuv的使用实战

libuv libuv简介 1: 开源跨平台的异步IO库, 主要功能有网络异步&#xff0c;文件异步等。 2: libuv主页: http://libuv.org/ 3: libuv是node.js的底层库; 4: libuv的事件循环模型: epoll, kqueue, IOCP, event ports; 异步 TCP 与 UDP sockets; DNS 解析 异步文件读写; 信号处…

Python结合MobileNetV2:图像识别分类系统实战

一、目录 算法模型介绍模型使用训练模型评估项目扩展 二、算法模型介绍 图像识别是计算机视觉领域的重要研究方向&#xff0c;它在人脸识别、物体检测、图像分类等领域有着广泛的应用。随着移动设备的普及和计算资源的限制&#xff0c;设计高效的图像识别算法变得尤为重要。…

设计模式-结构型-08-组合模式

文章目录 1、学校院系展示需求2、组合模式基本介绍3、组合模式示例3.1、 解决学校院系展示&#xff08;透明模式1&#xff09;3.2、高考的科目&#xff08;透明模式2&#xff09;3.3、高考的科目&#xff08;安全组合模式&#xff09; 4、JDK 源码分析5、注意事项和细节 1、学校…

存储过程编程-创建(CREATE PROCEDURE)、执行(EXEC)、删除(DROP PROCEDURE)

一、定义 1、存储过程是在SQL服务器上存储的已经编译过的SQL语句组。 2、存储过程分为三类&#xff1a;系统提供的存储过程、用户定义的存储过程和扩展存储过程 &#xff08;1&#xff09;系统提供的存储过程&#xff1a;在安装SQL Server时&#xff0c;系统创建了很多系统存…

AI机器人在企业拓客上常见的功能有哪些

AI机器人具备多种功能&#xff0c;这些功能主要基于其被设计和训练的目的。整理了一些常见的AI机器人功能&#xff1a; 1. 语音识别与自然语言处理&#xff1a; - 语音识别&#xff1a;将用户的语音输入转换为文本&#xff0c;以便机器人可以理解和处理。 - 自然语言处理…

QCC5181 歌词歌曲名多国语言显示替代QCC5125 CSR8675

QCC518X作为Qualcomm新一代蓝牙技术芯片&#xff0c;支持最新蓝牙协议V5.4&#xff0c;较QCC512X系列&#xff0c;它有更强大的DSP、CPU。除支持USB、I2S、SPDIF等接口外&#xff0c;还扩展了LE Audio功能&#xff0c;扩展支持AptX Lossless。以5181为例&#xff0c;我们还扩展…

vscode语言模式

1.背景 写vue3ts项目的时候&#xff0c;用到了volar插件&#xff0c;在单文件使用的时候&#xff0c;鼠标悬浮在代码上面会有智能提示&#xff1b; 但是最近volar插件提示被弃用了&#xff0c;然后我按照它的官方提示&#xff0c;安装了Vue-official扩展插件&#xff0c;但是…

Banana Pi BPI-M5 Pro 低调 SBC 采用 Rockchip RK3576 八核 Cortex-A72/A53 AIoT SoC

Banana Pi BPI-M5 Pro&#xff0c;也称为 Armsom Sige5&#xff0c;是一款面向 AIoT 市场的低调单板计算机 (SBC)&#xff0c;由 Rockchip RK3576 八核 Cortex-A72/A53 SoC 驱动&#xff0c;提供Rockchip RK3588和RK3399 SoC 之间的中档产品。 该主板默认配备 16GB LPDDR4X 和…

如何大幅减少 Vue.js 中的包大小和加载时间,提升用户体验!

大家好,我是CodeQi! 一位热衷于技术分享的码仔。 你知道吗,根据Google 的一项研究,如果网站加载时间超过 3 秒,53% 的移动用户会离开该网站? 性能优化是一个经常讨论的话题,但很多开发人员并不关心提高应用的速度。 在前端开发中,优化包大小和加载时间对于提升用户体…

下一代 CLI 工具,使用Go语言用于构建令人惊叹的网络应用程序

大家好&#xff0c;今天给大家分享一个创新的命令行工具Gowebly CLI&#xff0c;它专注于使用Go语言来快速构建现代Web应用程序。 Gowebly CLI 是一款免费开源软件&#xff0c;有助于在后端使用 Go、在前端使用 htmx 和 hyperscript 以及最流行的 CSS 框架轻松构建令人惊叹的 W…

入门PHP就来我这(高级)15 ~ 图书删除功能

有胆量你就来跟着路老师卷起来&#xff01; -- 纯干货&#xff0c;技术知识分享 路老师给大家分享PHP语言的知识了&#xff0c;旨在想让大家入门PHP&#xff0c;并深入了解PHP语言。 今天给大家接着上篇文章实现图书删除功能&#xff0c;来实现删除图书信息记录行的功能。 1 删…

高颜值官网(3):家居用品网站12个,好的创意都在这里。

hello&#xff0c;大家好&#xff0c;我是大千UI工场&#xff0c;本文为大家带来家居用品网站UI&#xff0c;供大家欣赏。

项目代码优化(1)——下单逻辑

给一个电商开发的系统排查&#xff0c;发现漏洞很多。很多经验不够的开发者很容易忽视的逻辑错误陷阱。在给一个项目做二次开发时候&#xff0c;检测到的相关经典案例。这里整理支付和产品相关的逻辑&#xff0c;方便后续查看。&#xff0c;这里进行一些简单的逻辑漏洞梳理与修…

Ubuntu 22.04 LTS 上安装 MySQL8.0.23(在线安装)

目录 在线安装MySQL 步骤1&#xff1a;更新软件包列表 步骤2&#xff1a;安装MySQL服务器 步骤3&#xff1a;启动MySQL服务 步骤4&#xff1a;检查MySQL状态 步骤5&#xff1a;修改密码、权限 在线安装MySQL 步骤1&#xff1a;更新软件包列表 在进行任何软件安装之前&a…