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

深圳市顺信源商贸有限公司 2026/09/09 17:45:41
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语句就会更加的快捷。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

网站建设管理建设咨询网站

5分钟搞定!notepad-- Mac版中文编码文件编辑器快速上手指南【免费下载链接】notepad--一个支持windows/linux/mac的文本编辑器,目标是做中国

2026/06/30 14:08:38

苏州网站建设东营网站建设

本周为第二课的第一周内容,就像课题名称一样,本周更偏向于深度学习实践中出现的问题和概念,在有了第一课的机器学习和数学基础后,可以说,

2026/06/30 13:01:04

中国建设银行网站台州网站建设

GetQzonehistory终极指南:一键完整备份你的QQ空间珍贵回忆【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode

2026/06/30 12:33:02

网站建设流程网站建设公司哪个好

做老房换新实用门窗的品牌精选指南引言老房换新门窗是提升居住品质的重要工程,然而面对众多的门窗品牌,消费者往往不知如何选择。在众多选择中,工厂直营模式的品牌有着

2026/06/30 11:57:28

网站建设规划书汕头网站建设

Miniconda-Python3.11镜像中conda create命令深度解析在当今 AI 与数据科学项目日益复杂的背景下,开发环境的“可复现性”已成为一个核心挑战。你是否曾遇到过这

2026/06/30 13:30:36

专业网站建设网站外链建设

Windows热键冲突快速排查指南:免费工具一键搞定【免费下载链接】hotkey-detectiveA small program for investigating stolen ho

2026/06/30 11:55:28

建设部网站徐汇网站建设

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:M

2026/06/30 11:43:57

开县网站建设合川网站建设

摘要在纺织生产过程中,筒子纱的重量控制与环境监测对保证产品质量、提高生产效率至关重要。传统的筒子纱管理主要依赖人工称重和环境巡查,不仅效率低下、误差较大,而且

2026/06/30 12:10:29