C 语言中的循环是程序设计中的重要组成部分,用于重复执行一段代码直到满足特定条件为止。在C语言中,有三种主要的循环结构:`while`循环、`do...while`循环以及`for`循环,此外还可以通过`goto`语句构建循环。
1. `goto`语句与`if`构成的循环:
`goto`语句是一种无条件转移语句,它允许程序跳转到程序中的某个标记行继续执行。在示例中,我们看到一个用`goto`和`if`构造的循环,计算1到100的和。循环的结构如下:
```c
loop: if(i<=100) {
sum += i;
i++;
goto loop;
}
```
这种循环会一直执行,直到`i`超过100,然后退出。但`goto`语句通常被认为是不良编程习惯,因为它可能导致难以理解和维护的代码。
2. `while`循环:
`while`循环在测试条件之前执行循环体,如果条件为真,则继续执行循环。其基本语法是:
```c
while(条件) {
循环体;
}
```
例如,计算1到100的和可以这样写:
```c
int i = 1, sum = 0;
while(i <= 100) {
sum += i;
i++;
}
```
`while`循环的特点是可能会一次都不执行循环体,如果初始条件就不满足。
3. `do...while`循环:
与`while`循环相反,`do...while`循环先执行一次循环体,再检查条件。如果条件为真,则继续循环。基本语法是:
```c
do {
循环体;
} while(条件);
```
例如,同样计算1到100的和,`do...while`循环会确保至少执行一次循环:
```c
int i = 1, sum = 0;
do {
sum += i;
i++;
} while(i <= 100);
```
4. `for`循环:
`for`循环是最常用的循环结构,通常用于已知迭代次数的情况。它由初始化、条件测试和迭代部分组成,语法如下:
```c
for(初始化; 条件; 迭代) {
循环体;
}
```
例如,计算1到100的和可以写作:
```c
int sum = 0;
for(int i = 1; i <= 100; i++) {
sum += i;
}
```
`for`循环在某些情况下可以比`while`循环更简洁,尤其是当循环变量需要初始化和迭代时。
在实际编程中,应尽量避免使用`goto`语句,因为它会导致控制流变得复杂。`while`、`do...while`和`for`循环提供了更加结构化的循环控制,有利于编写清晰易读的代码。在选择循环结构时,应根据具体需求和代码的可读性来决定。