循环结构是程序设计中的核心概念,它允许代码重复执行一段特定的逻辑,直到满足特定条件为止。本章主要讲解了三种常见的循环结构:while、do-while和for语句,以及在循环中使用的break和continue语句。
while语句是基于条件的循环,它的特点是先判断条件再执行循环体。while语句的基本格式为:`while(条件表达式) { 循环体; }`。当条件表达式为真(非零值)时,循环体内的代码将被执行。如果初始条件就不满足,循环可能不会执行。若条件始终为真,则会导致无限循环,即所谓的“死循环”。
例如,计算阶乘的while循环示例如下:
```c
#include "stdio.h"
void main() {
int n, i = 1;
long fac = 1;
printf("Input an integer: ");
scanf("%d", &n);
while(i <= n) {
fac *= i;
i++;
}
printf("%d!=%ld\n", n, fac);
}
```
在这个例子中,当输入5时,程序会计算5的阶乘,输出结果为60。
接下来是do-while语句,与while不同的是,do-while语句先执行循环体再判断条件,因此确保至少执行一次循环。基本格式为:`do { 循环体; } while(条件表达式);`。例如,同样计算阶乘的do-while版本:
```c
void main() {
int n, i = 1;
long fac = 1;
scanf("%d", &n);
do {
fac *= i;
i++;
} while(i <= n);
printf("%d!=%ld\n", n, fac);
}
```
无论输入的n值如何,这段代码都会首先计算1的阶乘,然后检查条件。
对于for语句,它是最常用的循环结构之一,常用于已知循环次数的情况。基本格式为:`for(初始化; 条件表达式; 更新) { 循环体; }`。例如,上述计算阶乘的程序可以更简洁地用for语句表示:
```c
void main() {
int n;
long fac = 1;
printf("Input an integer: ");
scanf("%d", &n);
for(int i = 1; i <= n; i++) {
fac *= i;
}
printf("%d!=%ld\n", n, fac);
}
```
此外,循环结构中还有break和continue语句。break用于跳出当前循环,而continue则是跳过当前循环迭代的剩余部分,直接进入下一次迭代。
例如,输入一系列实数并判断它们的正负,输入零结束循环的程序:
```c
#include "stdio.h"
void main() {
float n;
while((scanf("%f", &n) == 1) && (n != 0)) {
if(n > 0) {
printf(" + ");
} else {
printf(" - ");
}
}
}
```
在这个例子中,当输入为零时,循环会自动结束,因为scanf函数返回值不再为1。
统计键盘输入一行字符的个数,以回车键为结束标记:
```c
#include "stdio.h"
void main() {
char ch;
int num = 0;
ch = getchar();
while(ch != '\n') {
num++;
ch = getchar();
}
printf("num=%d\n", num);
}
```
这个程序会读取输入的字符,直到遇到回车符为止,然后输出字符数量。
循环结构是编程中不可或缺的一部分,理解和熟练掌握while、do-while、for以及break和continue语句的使用,能帮助我们编写出更高效、更灵活的程序。
评论0
最新资源