C语言循环控制:求π与循环结构
需积分: 9 5 浏览量
更新于2024-07-14
收藏 271KB PPT 举报
"这篇资料主要介绍了C语言的基础知识,特别是关于循环控制的语法,包括goto语句、while、do-while、for语句以及循环的嵌套。通过示例程序展示了如何使用这些循环结构来计算累加和以及求解π的近似值。"
在C语言中,循环控制是编程中的重要部分,它允许我们重复执行一段代码直到满足特定条件为止。资料中提到了几种不同的循环结构:
1. **goto语句**:这是一种无条件跳转语句,可以将程序执行流转移到程序的任何位置。然而,由于其可能导致程序结构混乱,通常不推荐使用。
示例:
```c
voidmain() {
int i = 1, sum = 0;
L: if (i <= 100) // 判断结束条件
{
sum = sum + i;
i++;
goto L;
}
printf("sum=%d", sum);
}
```
这段代码使用`goto`实现了累加和的计算,但从可读性和结构化的角度来看,这种方式并不理想。
2. **while语句**:在条件表达式为真时执行循环体内的代码。先检查条件,后执行循环体。
示例:
```c
voidmain() {
int i = 1, sum = 0;
while (i <= 100) {
sum = sum + i;
i++;
}
printf("sum=%d", sum);
}
```
这种结构更符合结构化编程原则,因为循环体至少会被执行一次。
3. **do-while语句**:与while相似,但即使条件不满足也会先执行一次循环体。特点是后检查条件。
示例:
```c
voidmain() {
int i = 1, sum = 0;
do {
sum = sum + i;
i++;
} while (i <= 100);
printf("sum=%d", sum);
}
```
`do-while`循环确保循环体至少执行一次。
4. **for语句**:一种更紧凑的循环结构,通常用于已知循环次数的情况。
示例:
```c
voidmain() {
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum = sum + i;
}
printf("sum=%d", sum);
}
```
`for`循环可以方便地设置初始化、条件检查和每次迭代后的更新操作。
5. **循环的嵌套**:在循环内部可以再包含一个或多个循环,用于处理更复杂的逻辑。
示例:
```c
voidmain() {
int outerSum = 0, innerSum = 0;
for (int i = 1; i <= 10; i++) {
for (int j = 1; j <= i; j++) {
innerSum += j;
}
outerSum += innerSum;
innerSum = 0;
}
printf("outerSum=%d", outerSum);
}
```
这个例子展示了两层嵌套循环,外层循环累加内层循环的结果。
此外,资料还提到了求π的近似值的方法,使用了一个无限序列公式,并通过逐步累加每个项的相反数,直到序列项的绝对值小于给定阈值(如1e-6)为止。这涉及到浮点数比较和循环终止条件的设定。
C语言中的循环控制提供了多种方式来实现重复执行的逻辑,每种都有其适用场景。理解并熟练掌握这些结构对于编写高效且易于维护的代码至关重要。在实际编程中,应尽量遵循结构化编程的原则,避免过多使用`goto`,以提高代码的可读性和可维护性。
2008-11-19 上传
2007-05-03 上传
2022-11-01 上传
2017-04-20 上传
2009-03-07 上传
点击了解资源详情
2023-05-24 上传
2023-05-03 上传
2023-03-07 上传
双联装三吋炮的娇喘
- 粉丝: 20
- 资源: 2万+
最新资源
- jenkins-job-manager
- avl:完全通用的类型安全数据结构
- E-learn-page:项目电子学习
- angular:角度项目
- PAT、蓝桥杯 Java 题解集
- 快速入门:各种用于创建基础结构或设置实验工具的快速入门脚本
- sal:简单的算法库
- CHAINS:CHAINS是一组脚本,用于自动执行“量子控制筛选”方法,该方法包括扫描多个分子,寻找其电子可以通过激光轻松控制的分子。 但是,每个单独的脚本都可以轻松调整以应对其他类似问题
- react-ts-test:基于create-react-app --typescript
- pisdk.rar 软件
- libzbtfb-开源
- shahidzaka.com:Shahid Zaka的主页:
- pb中获得本机IP地址\MAC地址信息纯代码方式
- Link Grabber-crx插件
- React-CNode::sparkles:基于React Router4 的CNode
- 包装生成器基础,用于使用LLVM包装适用于Python和其他语言的C ++。-Python开发