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

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

建设部网站绍兴网站建设

重载和重写的区别章节目录重载和重写的区别重载重写重载重载是指在同一个类中,可以有多个方法名相同但参数类型、参数个数或参数顺序不同的方法。重载方法的返回类型可以相同也可以不同,

2026/06/30 11:09:54

网站建设策划书广州 网站建设

如何真正解决 Safari 中100vh的“伪全屏”陷阱?一个前端老手的实战复盘你有没有遇到过这样的场景:在 iPhone 上打开一个 H5 登录页,设计稿明

2026/06/30 14:10:39

柳州网站建设网站如何建设

Vim命令行模式实用技巧1. 使用Tab键补全Ex命令在Vim的命令行中,如同在shell里一样,我们可以使用<Tab>键来自动补全命令。Vim会依据已输入的内容智能地给出补全建议。例如,

2026/06/30 12:30:31

北京网站建设涪陵网站建设

毕业季选 AI 写论文工具,就像在雷区中找捷径 —— 有的文献引用查无此篇,有的 AI 痕迹重到被导师驳回,有的数据图表全是虚拟模板,试遍 9

2026/06/30 10:23:49

合肥网站建设网站建设 流程

导师推荐!9款一键生成论文工具测评:本科生毕业论文写作全攻略2025年学术写作工具测评:为何选择这些工具?随着人工智能技术的不断进步࿰

2026/06/30 11:28:25

北京网站建设公司山东网站建设

如何在本地轻松部署Qwen3-VL多模态AI模型:新手完整指南【免费下载链接】Qwen3-VL-4B-Instruct-FP8项目地址: https://ai.gitcode.com/h

2026/06/30 12:11:30

深圳外贸网站建设小企业网站建设

在敏捷开发与DevOps已成为主流的今天,测试代码作为软件质量保障的核心资产,其版本管理的重要性不言而喻。版本管理不规范可能导致环境混乱、用例冲突、缺陷复现困难等问题&#x

2026/06/30 10:57:53

网站建设方案牡丹江网站建设

手把手教你实现 STM32CubeMX 中文汉化:从原理到实战你是不是也曾在打开 STM32CubeMX 时,面对满屏英文菜单感到头大?“Clock Conf

2026/06/30 12:07:00

惠州网站建设孝感网站建设

创维E900V22D刷Armbian系统深度解析:从原理到实战的完整指南【免费下载链接】amlogic-s9xxx-armbianamlogic-s9xxx-armbian: 该项目提供

2026/06/30 14:19:39

建设信息网站大网站建设

神经网络架构搜索在模型优化中的应用关键词:神经网络架构搜索、模型优化、自动化机器学习、深度学习、搜索算法、架构表示摘要:本文深入探讨了神经网络架构搜索(NAS)在模型优化中的应用。首先介绍了NAS的背

2026/06/30 12:56:33