C - 循环:高效编程的入门

你好,有抱负的程序员们!今天,我们将踏上一段激动人心的旅程,探索C语言的循环世界。作为你友好邻邦的计算机科学老师,我很高兴能引导你了解这个基本概念,它将彻底改变你的编码体验。

C - Loops

循环是什么,我们为什么需要它们?

想象一下,你被要求写100次"我爱编程"。听起来很乏味,对吧?这就是循环派上用场的地方!循环允许我们重复执行一段代码,节省时间并使我们的程序更高效。

C循环语句的流程图

在我们深入研究代码之前,让我们先可视化一下循环是如何工作的:

┌─────────────┐
│ 开始循环    │
└──────┬──────┘
│
┌──────▼──────┐
│  条件判断   │
└──────┬──────┘
│
┌───────┴───────┐
No │               │ Yes
│   ┌───────────▼─────────┐
│   │  执行循环体         │
│   └───────────┬─────────┘
│               │
│   ┌───────────▼─────────┐
│   │    更新计数器       │
│   └───────────┬─────────┘
│               │
┌───▼───┐           │
│  结束  │◄──────────┘
└───────┘

这个流程图显示了循环的基本结构。我们从检查一个条件开始。如果它是真的,我们执行循环体并更新我们的计数器。然后,我们再次检查条件。这个过程会一直继续,直到条件变成假的。

C中的循环类型

C语言为我们提供了三种主要的循环类型。让我们一一探索:

1. for循环

当你确切知道你想重复多少次时,for循环是完美的。

#include <stdio.h>

int main() {
for (int i = 1; i <= 5; i++) {
printf("迭代 %d\n", i);
}
return 0;
}

在这个例子中,我们在5次迭代中打印迭代数。让我们分解一下:

  • int i = 1:初始化我们的计数器
  • i <= 5:只要这个条件为真,就继续
  • i++:每次迭代后增加我们的计数器

输出:

迭代 1
迭代 2
迭代 3
迭代 4
迭代 5

2. while循环

当你想重复某个条件为真时,while循环是很好的选择。

#include <stdio.h>

int main() {
int count = 1;
while (count <= 5) {
printf("计数是:%d\n", count);
count++;
}
return 0;
}

在这里,我们从1数到5。循环将继续,只要count小于或等于5。

输出:

计数是:1
计数是:2
计数是:3
计数是:4
计数是:5

3. do-while循环

do-while循环与while循环相似,但它保证循环体至少执行一次。

#include <stdio.h>

int main() {
int num = 1;
do {
printf("%d 的平方是 %d\n", num, num * num);
num++;
} while (num <= 5);
return 0;
}

这个程序计算并打印1到5的数的平方。

输出:

1 的平方是 1
2 的平方是 4
3 的平方是 9
4 的平方是 16
5 的平方是 25

C循环的组成部分

C语言中的每个循环都由三个主要部分组成:

  1. 初始化:我们设置循环变量
  2. 条件:决定循环是否继续的测试
  3. 更新:每次迭代后如何改变循环变量

C中的循环控制语句

有时,我们需要对循环有更多的控制。C语言为此提供了两个特殊语句:

1. break语句

break语句允许我们提前退出循环。

#include <stdio.h>

int main() {
for (int i = 1; i <= 10; i++) {
if (i == 6) {
printf("在 i = %d 时退出循环\n", i);
break;
}
printf("i = %d\n", i);
}
return 0;
}

这个循环将在i达到6时停止。

输出:

i = 1
i = 2
i = 3
i = 4
i = 5
在 i = 6 时退出循环

2. continue语句

continue语句跳过当前迭代的其余部分,并移动到下一个迭代。

#include <stdio.h>

int main() {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
printf("跳过迭代 %d\n", i);
continue;
}
printf("i = %d\n", i);
}
return 0;
}

这个循环将在i为3时跳过打印。

输出:

i = 1
i = 2
跳过迭代 3
i = 4
i = 5

C中的无限循环

无限循环是永远不会结束的循环。虽然通常是不经意的,但在某些情况下我们可能需要这种行为。

#include <stdio.h>

int main() {
while (1) {
printf("这将永远打印!\n");
}
return 0;
}

小心处理无限循环!如果处理不当,它们可能会使你的程序崩溃。

结论

恭喜你!你已经迈出了进入C语言循环世界的第一步。记住,熟能生巧。尝试编写你自己的循环,尝试不同的条件,很快你就能像专业人士一样循环!

以下是我们在本文中讨论的循环类型的快速参考表:

循环类型 语法 最佳使用场景
For for (init; condition; update) { ... } 你知道确切的迭代次数
While while (condition) { ... } 你想基于一个条件重复
Do-While do { ... } while (condition); 你需要至少执行一次循环

快乐编码,愿你的循环总是按照你的意愿终止!

Credits: Image by storyset