宜昌网站建设顺德网站建设

铜鼓县赣丰汽运有限公司 2026/09/09 17:45:51
C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实
现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种
结构的组合。
我们可以使⽤ifswitch实现分⽀结构,使⽤forwhiledo while实现循环结构。

1.if语句

1.1if

if 语句的语法形式如下:
if(表达式)
语句
表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏在C语⾔中,0为假⾮0表⽰真,也就是表达式的结果如果是0,则语句不执⾏,表达式的结果如果不 是0,则语句执⾏。
例⼦:输⼊⼀个整数,判断是否为奇数
#include <stdio.h> int main() { int num = 0; scanf("%d", &num); if(num % 2 == 1) printf("%d 是奇数
", num); return 0; }

1.2 else

如果⼀个数不是奇数,那就是偶数了,如果任意⼀个整数,我们要清楚的判断是奇数还是偶数怎么表
⽰呢?
这⾥就需要if...else...语句了,语法形式如下:
if(表达式)
语句1
else
语句2
例⼦:输⼊⼀个整数,判断是否为奇数,如果是奇数打印是奇数,否则打印偶数。
#include <stdio.h> int main() { int num = 0; scanf("%d", &num); if(num % 2 == 1) printf("%d 是奇数
", num); else printf("%d 是偶数
", num); return 0; }

1.3 分支中包含多条语句

默认在ifelse语句中默认都只控制⼀条语句

1.4 嵌套if

if else语句中,else可以与另⼀个if语句连⽤,构成多重判断。
⽐如:
输⼊⼀个整数,如果是正数,再判断是奇数还是偶数,并输出;如果不是正数则输出:⾮正数。
#include <stdio.h> int main() { int num = 0; scanf("%d", &num); if(num > 0) { if(num%2 == 0) printf("偶数
"); else printf("奇数
"); } else { printf("⾮正数
"); } return 0; }

1.5 悬空else问题

如果有多个ifelse,可以记住这样⼀条规则,else总是跟最接近的if匹配。
#include <stdio.h> int main() { int a = 0; int b = 2; if(a == 1) if(b == 2) printf("hehe
"); else printf("haha
"); return 0; }
但是当你去运⾏代码,输出的结果是:啥都不输出。
这就是悬空else的问题,如果有多个ifelse,可以记住这样⼀条规则,else总是跟最接近
if匹配。
上⾯的代码排版,让else和第⼀个if语句对⻬,让我们以为else是和第⼀个if匹配的,当if
语句不成⽴的时候,⾃然想到的就是执⾏else⼦句,打印haha,但实际上else是和第⼆个if
进⾏匹配的,这样后边的if...else语句是嵌套在第⼀个if语句中的,如果第⼀个if语句就不
成⽴,嵌套ifelse就没机会执⾏了,最终啥都不打印。
如果代码改成下⾯这样就更加容易理解了
#include <stdio.h> int main() { int a = 0; int b = 2; if(a == 1) { if(b == 2) printf("hehe
"); else printf("haha
"); } return 0; }
只要带上适当的⼤括号,代码的逻辑就会更加的清晰,所以⼤家以后在写代码的时候要注意括号的使 ⽤,让代码的可读性更⾼。

2.0 关系操作符

C 语⾔⽤于⽐较的表达式,称为 “关系表达式”(relational expression),⾥⾯使⽤的运算符就称
为“关系运算符”(relational operator),主要有下⾯6个。
> ⼤于运算符
< ⼩于运算符
>= ⼤于等于运算符
<= ⼩于等于运算符
== 相等运算符
!= 不相等运算符
关系表达式通常返回01,表⽰真假。
C 语⾔中,0表⽰假,所有⾮零值表⽰真。⽐如,20 > 12返回112 > 20返回0
注意:相等运算符==与赋值运算符=是两个不⼀样的运算符,不要混淆。有时候,可能会不⼩⼼写
出下⾯的代码,它可以运⾏,但很容易出现意料之外的结果。
为了防⽌出现这种错误,有的程序员喜欢将变量写在等号的右边。
if (3 == x)

这样的话,如果把 ==误写成=,编译器就会报错。

另⼀个需要避免的错误是:多个关系运算符不宜连⽤

3.0 条件操作符(三目操作符)

exp1 ? exp2 : exp3
条件操作符的计算逻辑是:如果exp1为真,exp2计算,计算的结果是整个表达式的结果;如果
exp1为假,exp3计算,计算的结果是整个表达式的结果。

4.0 逻辑操作符:&& , || , !

逻辑运算符提供逻辑判断功能,⽤于构建更复杂的表达式,主要有下⾯三个运算符。

! :逻辑取反运算符(改变单个表达式的真假)。
&& :逻辑与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)。
|| :逻辑或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)。

4.1 短路

C语⾔逻辑运算符还有⼀个特点,它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是 保证的。
如果左边的表达式满⾜逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为“短路”。

5.0 switch语句

除了if语句外,C语⾔还提供了switch语句来实现分⽀结构。
switch语句是⼀种特殊形式的if...else结构,⽤于判断条件有多个结果的情况。
switch (expression) { case value1: statement case value2: statement ... default: statement }
上⾯代码中,根据表达式expression不同的值,执⾏相应的case分⽀。如果找不到对应的值,
就执⾏default分⽀。
注:
switch 后的expression必须是整型表达式
case 后的值,必须是整形常量表达式
case 和后边的数字之间必须有空格
每⼀个 case语句中的代码执⾏完成后,需要加上break,才能跳出这个switch语句

5.1 switch语句中的case和default的顺序问题

switch语句中case语句和default语句是没有顺序要求的,只要你的顺序是满⾜实
际需求的就可以。
不过我们通常是把default⼦句放在最后处理的。
default放前面需要加break,放在最后则不用加

6. while循环

C语⾔提供了3种循环语句, while就是其中⼀种,接下来就介绍⼀下while语句。

while 语句的语法结构和if语句⾮常相似。

它们的区别就是:while语句是可以实现循环效果的。

6.1 while 循环的实践

练习:在屏幕上打印 1~10 的值
#include <stdio.h> int main() { int i = 1; while(i <= 10) { printf("%d ", i); i = i + 1; } return 0; }
⾸先上来就是执⾏判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执⾏循环语
句,语句执⾏完后再继续判断,是否进⾏下⼀次判断。

7.0 for循环

for(表达式1; 表达式2; 表达式3) 语句;//如果循环体想包含更多的语句,可以加上⼤括号
表达式1⽤于循环变量的初始化
表达式2⽤于循环结束条件的判断
表达式3⽤于循环变量的调整

7.1 for循环的实践

练习:在屏幕上打印1~10的值
#include <stdio.h> int main() { int i = 0; for(i = 1; i <= 10; i++) { printf("%d ", i); } return 0; }

7.2 while循环和for循环的对⽐

forwhile在实现循环的过程中都有初始化、判断、调整这三个部分,但是for循环的三个部
分⾮常集中,便于代码的维护,⽽如果代码较多的时候while循环的三个部分就⽐较分散,所以从形 式上for 循环要更优⼀些

8.0do-while 循环

在循环语句中do while语句的使⽤最少(多用于至少要执行一次的时候),它的语法如下:
do 语句; while(表达式);
whilefor这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳
出循环;
do while循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏while后的判断表达式,表
达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。

8.1 do while循环的实例

在屏幕上打印1~10的值

#include <stdio.h> int main() { int i = 1; do { printf("%d ", i); i = i + 1; }while(i <= 10); return 0; }

9.0 break和continue语句

在循环执⾏的过程中,如果某些状况发⽣的时候,需要提前终⽌循环,这是⾮常常⻅的现象。C语⾔中
提供了breakcontinue两个关键字,就是应⽤到循环中的。
break 的作⽤是⽤于永久的终⽌循环,只要break被执⾏,直接就会跳出循环,继续往后执
⾏。
continue 的作⽤是跳过本次循环中continue后边的代码,在for循环和while循环中有
所差异的。
10.0 循环的嵌套
三种循环 whiledo whilefor,这三种循环往往会嵌套在⼀起才能更好的解决
问题,就是我们所说的:循环嵌套.
例子:找出100~200之间的素数,并打印在屏幕上。
#include <stdio.h> int main() { int i = 0; //循环产⽣100~200的数字 for(i = 100; i <= 200; i++) { //判断i是否为素数 //循环产⽣2~i-1之间的数字 int j = 0; int flag = 1;//假设i是素数 for(j = 2; j < i; j++) { if(i % j == 0) { flag = 0; break; } } if(flag == 1) printf("%d ", i); } return 0; }

11.goto 语句

C语⾔提供了⼀种⾮常特别的语法,就是goto语句和跳转标号,goto语句可以实现在同⼀个函数
内跳转到设置好的标号处。
例如:
#include <stdio.h> int main() { printf("hehe
"); goto next; printf("haha
"); next: printf("跳过了haha的打印
"); return 0; }
goto语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以我们的建 议是能不⽤尽量不去使⽤;但是 goto语句也不是⼀⽆是处,在多层循环的代码中,如果想快速跳 出,使⽤ goto就⾮常的⽅便了。
本来for循环想提前退出得使⽤break⼀个 break 只能跳出⼀层 for 循环,如果3层循环嵌套
就得使⽤3个break才能跳出循环,所以在这种情况下我们使⽤goto语句就会更加的快捷。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

免费建设网站网站建设专家

RAG技术已形成Naive、Advanced、Graph和Agentic四大架构体系,分别适配不同复杂度场景。Naive RAG适合简单问答,Advanced RAG提升检

2026/06/30 11:50:27

建设银行官方网站网站建设项目

文章目录? 介绍 ?? 演示环境 ?? 虚拟环境下的可视化智能Python打包工具 ?? 为什么选择这个打包方案? 核心特性详解纯虚拟环境打包机制智能镜像源选择UPX极限压缩集成? 使用方法基础使用打

2026/06/30 10:37:52

桂林网站建设网站建设软件

Crawl4AI嵌入策略终极指南:从关键词匹配到语义理解的智能爬取革命【免费下载链接】crawl4ai🔥🕷️ Crawl4AI: Open-source

2026/06/30 11:37:56

宝安网站建设上海的网站建设公司

文章提出AI时代产品经理四大成长方向:善用AI工具提升生产力、掌握AI产品实践、自我迭代进化、面向未来的商业思考。每个方向均设计四级进阶路径,从基础应用到高级赋能。作者创建

2026/06/30 10:20:19

网站建设规划书宜昌网站建设

第一章:C# 跨平台方法拦截概述在现代软件开发中,C# 不仅活跃于 Windows 平台,也通过 .NET Core 和 .NET 5+ 实现了真正的

2026/06/30 10:45:21

涪陵网站建设网站建设哪家便宜

郑州轻工业大学毕业设计(论文)任务书(空1行。小四号1.5倍行距)题目专业学号姓名主要内容:跨平台兼容在线学习系统旨在提供一个功能

2026/06/30 11:17:54

重庆网站建设郑州网站建设公司

如何快速备份QQ空间:GetQzonehistory完整使用指南【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com

2026/06/30 11:44:27

番禺网站建设四川省建设厅网站

MyBatisPlus 和 VoxCPM-1.5-TTS-WEB-UI 的真实关系解析在当前AI技术迅猛发展的背景下,开发者常常会遇到这样一个困惑:某个后端框架是否支持或集

2026/06/30 11:51:28

石家庄网站建设网站建设软件

论文重复率超30%?5个降重技巧,一次降到合格线嘿,大家好!我是AI菌。今天咱们来聊聊一个让无数学生头疼的问题:论文重复率飙到30

2026/06/30 13:48:37

静安网站建设六安网站建设

Vitis AI推理延迟优化实战:从模型到硬件的全链路加速在边缘计算和实时AI系统中,“跑得快”往往比“跑得通”更重要。当你把一个训练好的PyTorch模型部署到ZCU10

2026/06/30 13:02:04