原文: https://beginnersbook.com/2014/01/c-while-loop/

循环用于重复执行语句块,直到给定条件返回false。在上一个教程中,我们学习了for循环。在本指南中,我们将学习while循环。

C - while循环

while循环的语法:

  1. while (condition test)
  2. {
  3. //Statements to be executed repeatedly
  4. // Increment (++) or Decrement (--) Operation
  5. }

while循环流程图

C 编程中的`while`循环 - 图1

while循环的示例

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int count=1;
  5. while (count <= 4)
  6. {
  7. printf("%d ", count);
  8. count++;
  9. }
  10. return 0;
  11. }

输出:

  1. 1 2 3 4

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

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

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

猜测这个while循环的输出

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int var=1;
  5. while (var <=2)
  6. {
  7. printf("%d ", var);
  8. }
  9. }

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

无限while循环的例子

例 1:

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int var = 6;
  5. while (var >=5)
  6. {
  7. printf("%d", var);
  8. var++;
  9. }
  10. return 0;
  11. }

无限循环: var将始终具有值>= 5,因此循环永远不会结束。

例 2:

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int var =5;
  5. while (var <=10)
  6. {
  7. printf("%d", var);
  8. var--;
  9. }
  10. return 0;
  11. }

无限循环:由于--运算符,var值将继续减小,因此它总是<= 10

while循环中使用逻辑运算符

就像关系运算符(< > <= >= == !=)一样,我们也可以在while循环中使用逻辑运算符。以下方案有效:

  1. while(num1<=10 && num2<=10)

使用与(&&)运算符,这意味着两个条件都应该为真。

  1. while(num1<=10||num2<=10)

或(||)运算符,此循环将运行,直到两个条件都返回false

  1. while(num1!=num2 &&num1 <=num2)

这里我们使用两个逻辑运算符 NOT(!)和 AND(&&)。

  1. while(num1!=10 ||num2>=num1)

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

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

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int i=1, j=1;
  5. while (i <= 4 || j <= 3)
  6. {
  7. printf("%d %d\n",i, j);
  8. i++;
  9. j++;
  10. }
  11. return 0;
  12. }

输出:

  1. 1 1
  2. 2 2
  3. 3 3
  4. 4 4