# C 编程中的`while`循环

> 原文： [https://beginnersbook.com/2014/01/c-while-loop/](https://beginnersbook.com/2014/01/c-while-loop/)

循环用于重复执行语句块，直到给定条件返回`false`。在上一个教程中，我们学习了[`for`循环](https://beginnersbook.com/2014/01/c-for-loop/)。在本指南中，我们将学习`while`循环。

## C - `while`循环

`while`循环的语法：

```c
while (condition test)
{
      //Statements to be executed repeatedly 
      // Increment (++) or Decrement (--) Operation
}
```

### `while`循环流程图

![C while loop](img/7b72e00c2eb775826d42612e1cc5124b.jpg)

### `while`循环的示例

```c
#include <stdio.h>
int main()
{
   int count=1;
   while (count <= 4)
   {
	printf("%d ", count);
	count++;
   }
   return 0;
}

```

输出：

```c
1 2 3 4
```

**步骤 1：**变量计数初始化为值 1，然后测试该条件。

**步骤 2：**如果条件返回`true`，则执行`while`循环体内的语句，否则控制退出循环。

**步骤 3：**使用`++`运算符递增计数值，然后再次测试循环条件。

**猜测这个`while`循环的输出**

```c
#include <stdio.h>
int main()
{
     int var=1;
     while (var <=2)
     {
        printf("%d ", var);
     }
}
```

该程序是**无限循环**的一个例子。由于变量`var`的值相同（此变量上没有使用`++`或 `--`运算符，因此在循环体内）条件`var <= 2`将永远为真，循环永远不会终止。

### 无限`while`循环的例子

**例 1：**

```c
#include <stdio.h>
int main()
{
     int var = 6;
     while (var >=5)
     {
        printf("%d", var);
        var++;
     }
   return 0;
}
```

**无限循环：** `var`将始终具有值`>= 5`，因此循环永远不会结束。

**例 2：**

```c
#include <stdio.h>
int main()
{
    int var =5;
    while (var <=10)
    {
       printf("%d", var);
       var--;
    }
    return 0;
}
```

**无限循环**：由于`--`运算符，`var`值将继续减小，因此它总是`<= 10`。

## 在`while`循环中使用逻辑运算符

就像关系运算符（`< > <= >= == !=`）一样，我们也可以在`while`循环中使用逻辑运算符。以下方案有效：

```c
while(num1<=10 && num2<=10)
```

使用与（`&&`）运算符，这意味着两个条件都应该为真。

```c
while(num1<=10||num2<=10)
```

或（`||`）运算符，此循环将运行，直到两个条件都返回`false`。

```c
while(num1!=num2 &&num1 <=num2)
```

这里我们使用两个逻辑运算符 NOT（`!`）和 AND（`&&`）。

```c
while(num1!=10 ||num2>=num1)
```

### 使用逻辑运算符的`while`循环示例

在这个例子中，我们在`while`循环中使用逻辑运算符测试多个条件。

```c
#include <stdio.h>
int main()
{
   int i=1, j=1;
   while (i <= 4 || j <= 3)
   {
	printf("%d %d\n",i, j);
	i++;
	j++;
   }
   return 0;
}
```

输出：

```c
1 1
2 2
3 3
4 4
```