C语言之 循环语句:程序运行的核心动力(上)

server/2025/3/19 4:04:50/

个人主页:strive-debug

在 C 语言中,分支结构可以通过 `if`、`switch` 语句来实现,循环结构则可以通过 `for`、`while`、`do while` 语句来实现。

`if` 语句

`if` 语句的语法形式如下:

if (表达式)语句;

如果表达式成立(为真),则执行语句;如果表达式不成立(为假),则不执行语句。在 C 语言中,0 表示假,非0 表示真。因此,如果表达式的结果是0,则语句不执行;如果表达式的结果不是0,则语句执行。

代码演示:

#include <stdio.h>
int main()
{int num = 0;scanf("%d", &num);if(num % 2 == 1)printf("%d 是奇数\n", num);return 0;
}

如果一个数不是奇数,那就是偶数了。为了清楚地判断一个整数是奇数还是偶数,可以使用 `if...else...` 语句。语法形式如下:
 

if (表达式)语句1;
else语句2;

 例子
输入一个整数,判断是否为奇数,如果是奇数打印“是奇数”,否则打印“偶数”。

#include <stdio.h>
int main()
{int num = 0;scanf("%d", &num);if(num % 2 == 1)printf("%d 是奇数
", num);elseprintf("%d 是偶数
", num);return 0;
}

分支中包含多条语句


默认情况下,`if` 和 `else` 语句中只控制一条语句。例如:

#include <stdio.h>
int main()
{int age = 0;scanf("%d", &age);if(age >= 80){printf("该入土了
");printf("可以等着了
");}else{printf("你还有时间
");}return 0;
}

嵌套 `if`


在 `if...else` 语句中,`else` 可以与另一个 `if` 语句连用,构成多重判断。例如:输入一个整数,判断输入的整数是0,正数还是负数。

#include <stdio.h>
int main()
{int num = 0;scanf("%d", &num);if(num == 0)printf("输入的数字是0
");else if(num > 0) // 这里的 if 相当于嵌套在 else 语句中,形成了嵌套结构printf("输入的数字是正数
");elseprintf("输入的数字是负数
");return 0;
}


有了嵌套 `if` 语句,就可以完成更多复杂逻辑的判断。

 悬空 `else` 问题


如果有多个 `if` 和 `else`,记住这样一条规则:`else` 总是跟最接近的 `if` 匹配。例如:

#include <stdio.h>
int main()
{int num = 0;scanf("%d", &num);if(num == 0)printf("输入的数字是0
");else if(num > 0) // 这里的 if 相当于嵌套在 else 语句中,形成了嵌套结构printf("输入的数字是正数
");elseprintf("输入的数字是负数
");return 0;
}


通过适当的大括号,可以让代码的逻辑更加清晰,提高可读性。

 `switch` 语句


`switch` 语句根据表达式的值使程序跳转到不同的代码段去执行。其语法形式如下:

switch (表达式)
{case 常量1:语句1;break;case 常量2:语句2;break;// ...default:语句n;break;
}

输入任意一个整数值,计算除3之后的余数
使用 `if` 语句完成:

#include <stdio.h>
int main()
{int n = 0;scanf("%d", &n);if(n % 3 == 0)printf("整除,余数为0
");else if(n % 3 == 1)printf("余数是1
");elseprintf("余数是2
");return 0;
}


使用 `switch` 语句改写:

#include <stdio.h>
int main()
{int n = 0;scanf("%d", &n);switch(n % 3){case 0:printf("整除,余数为0
"); break;case 1:printf("余数是1
"); break;case 2:printf("余数是2
"); break;}return 0;
}


注意事项:
1. `case` 和后边的数字之间必须有空格。
2. 每一个 `case` 语句中的代码执行完成后,需要加上 `break`,才能跳出这个 `switch` 语句。


http://www.ppmy.cn/server/176142.html

相关文章

【数学建模】层次分析法(AHP)详解及其应用

层次分析法(AHP)详解及其应用 引言 在现实生活和工作中&#xff0c;我们经常面临复杂的决策问题&#xff0c;这些问题通常涉及多个评价准则&#xff0c;且各准则之间可能存在相互影响。如何在这些复杂因素中做出合理的决策&#xff1f;层次分析法(Analytic Hierarchy Process…

如何玩DeepSeek!15分钟快速创建GIS动态数据可视化仪表盘

DeepSeek最近火遍全球&#xff0c;大家用的都用的不亦乐乎。国外呢&#xff1f;当然也是&#xff0c;最近一上YouTube、X等都是deepseek的推送。 今天介绍一下&#xff0c;我在YouTube上看到的GIS行业与DeepSeek结合的一个案例&#xff1a; 快速轻松构建交互式地图仪表盘&…

从零搭建微服务项目Pro(第6-1章——Spring Security+JWT实现用户鉴权访问与token刷新)

前言&#xff1a; 在现代的微服务架构中&#xff0c;用户鉴权和访问控制是非常重要的一部分。Spring Security 是 Spring 生态中用于处理安全性的强大框架&#xff0c;而 JWT&#xff08;JSON Web Token&#xff09;则是一种轻量级的、自包含的令牌机制&#xff0c;广泛用于分…

SiC/GaN器件测试新选择:MHO5000如何破解高频开关噪声难题?

引言&#xff1a;宽禁带半导体的“高频挑战” 在新能源汽车、光伏逆变器、5G基站等高端领域&#xff0c;SiC&#xff08;碳化硅&#xff09;和GaN&#xff08;氮化镓&#xff09;器件因其高频、高功率密度特性&#xff0c;成为下一代电力电子设备的核心。然而&#xff0c;其高频…

IP关联的定义和避免方法

大家好&#xff01;今天我们来聊一聊一个在运营多个网络账号时会遇到的重要问题——IP关联。对于那些正在运营多个账号或者进行多窗口任务的朋友们&#xff0c;这无疑是一个你必须关注的问题。IP关联&#xff0c;简单来说&#xff0c;就是多个账号在使用相同IP地址的情况下进行…

C++中的单例模式及具体应用示例

AI 摘要 本文深入探讨了C中的单例模式及其在机器人自主导航中的应用&#xff0c;特别是如何通过单例模式来管理地图数据。文章详细介绍了单例模式的基本结构、优缺点以及在多线程环境中的应用&#xff0c;强调了其在保证数据一致性和资源管理中的重要性。 接着&#xff0c;文章…

当量子计算邂逅计算机视觉:开启科技融合新征程

量子计算与 CV&#xff1a;崭新时代的科技融合 在科技飞速发展的当今时代&#xff0c;量子计算和**计算机视觉&#xff08;CV&#xff09;**作为两个极具潜力的前沿领域&#xff0c;正各自展现出独特的价值和影响力。量子计算基于量子力学原理&#xff0c;利用量子比特&#x…

【软件工程】06_软件设计

6.1 软件设计概述 1. 软件设计的目标 软件设计的最基本目标就是回答 “概括地描述系统如何实现用户所提出来的功能和性能等方面的需求?” 这个问题。 软件设计的目标是根据软件需求分析的结果,设想并设计软件,即根据目标系统的逻辑模型确定目标系统的物理模型。包括软件体系…