C语言 - while循环



在C语言中,while 是一个用于构成循环的关键字。while 循环是C语言中最常用的循环类型之一。C语言中的循环。C语言中的其他循环关键字是 fordo-while

while 循环通常被称为入口验证循环,而do-while 循环出口验证循环for 循环则是一个自动循环

C语言while循环的语法

构建while 循环的语法如下:

while(expression){
   statement(s);
}

while 关键字后面跟着一个括号,其中应该包含一个布尔表达式。括号后面是用花括号括起来的一段语句块。

C语言while循环的流程图

下面的流程图表示while 循环的工作方式:

while loop in C

while循环在C语言中如何工作?

C编译器 会评估表达式。如果表达式为真,则会执行其后的代码块。如果表达式为假,编译器会忽略while 关键字后面的代码块,并继续执行代码块后面的下一条语句。

由于控制循环的表达式是在程序进入循环之前进行测试的,因此while 循环被称为入口验证循环。这里需要注意的关键点是,如果条件在第一次就发现为假,则while 循环可能根本不会执行。

while 关键字意味着编译器会持续执行后续代码块,直到表达式为假。条件位于循环结构的顶部。每次迭代后,都会测试条件。如果发现为真,编译器会执行下一次迭代。一旦表达式被发现为假,循环体将被跳过,并且将执行while循环后的第一条语句。

C语言while循环的示例

下面的程序打印“Hello World”消息五次。

#include <stdio.h>
 
int main(){

   // local variable definition
   int a = 1;

   // while loop execution
   while(a <= 5){
      printf("Hello World \n");
      a++;
   }
   printf("End of loop"); 
   return 0;
}

输出

在这里,while 循环充当计数循环。运行代码并检查其输出:

Hello World
Hello World
Hello World
Hello World
Hello World
End of loop

示例解释

while 语句之前,控制重复次数的变量“a”被初始化为1。由于条件“a <= 5”为真,程序进入循环,打印消息,将“a”加1,然后返回到循环顶部。

在下一次迭代中,“a”为2,因此条件仍然为真,因此循环再次重复,并持续到条件变为假。循环停止重复,程序控制转到代码块之后的步骤。

现在,将“a”的初始值更改为10,然后再次运行代码。现在输出将显示以下内容:

End of loop

这是因为while 关键字之前的条件在第一次迭代中就为假,因此代码块没有重复执行。

“char”变量表示与其ASCII值对应的字符。因此,它可以递增。因此,我们将变量的值从“a”递增到“z”。

将while用作条件循环

您可以将while循环用作条件循环,其中循环将一直执行到满足给定条件为止。

示例

在这个例子中,while 循环用作条件循环。循环会一直重复,直到接收到的输入是非负数。

#include <stdio.h>

int main(){

   // local variable definition 
   char choice = 'a';

   int x = 0;

   // while loop execution
   while(x >= 0){
      (x % 2 == 0) ? printf("%d is Even \n", x) : printf("%d is Odd \n", x);

      printf("\n Enter a positive number: ");
      scanf("%d", &x);
   }
   printf("\n End of loop");
   return 0;
}

输出

运行代码并检查其输出:

0 is Even

Enter a positive number: 12
12 is Even

Enter a positive number: 25
25 is Odd

Enter a positive number: -1

End of loop

带有break和continue的while循环

在以上所有示例中,while 循环的设计目的是重复多次,或者直到找到某个特定条件。C语言有breakcontinue 语句来控制循环。这些关键字可以在while 循环内使用。

示例

break 语句导致循环终止:

while (expr){
   . . .
   . . .
   if (condition)
      break;
   . . .
}

示例

continue 语句使循环从开头重复:

while (expr){
   . . .
   . . .
   if (condition)
      continue;
   . . .
}

更多C语言while循环示例

示例:打印小写字母

下面的程序使用while 循环打印所有小写字母。

#include <stdio.h>
 
int main(){

   // local variable definition
   char a = 'a';

   // while loop execution
   while(a <= 'z') {
      printf("%c", a);
      a++;
   }
   printf("\n End of loop"); 
   return 0;
}

输出

运行代码并检查其输出:

abcdefghijklmnopqrstuvwxyz
End of loop

示例:使两个变量相等

在下面给出的代码中,我们有两个变量“a”和“b”,分别初始化为10和0。在循环中,“b”递减,“a”在每次迭代中递增。循环设计为重复执行,直到“a”和“b”不相等。当两者都达到5时,循环结束。

#include <stdio.h>

int main(){

   // local variable definition
   int a = 10, b = 0;

   // while loop execution
   while(a != b){
      a--;
      b++;
      printf("a: %d b: %d\n", a,b);
   }
   printf("\n End of loop");
   return 0;
}

输出

运行此代码时,将产生以下输出:

a: 9 b: 1
a: 8 b: 2
a: 7 b: 3
a: 6 b: 4
a: 5 b: 5

End of loop

while循环与do while循环

do-while 循环在大多数情况下与while 循环类似,尽管它们的语法有所不同。do-while 循环被称为出口验证循环。在某些情况下,它们的行为是不同的。whiledo-while 循环之间的区别在本教程的do-while 章节中进行了解释。

c_loops.htm
广告