0%

C语言 while循环语句

C语言的while循环语句

​ C语言本身有3种程序结构,分别是:

  1. 顺序结构:语句一句一句执行,从头执行到结尾;
  2. 选择结构:可以理解为是分支结构,根据判断结构来选择向哪个方向进行,类似前面说的if、else语句;
  3. 循环结构:循环结构是这3个里面最复杂的,因为它自身有一个循环体,结构本身也是根据判断的结构,来决定循环体到底执行多少次,只要条件满足,循环体可以执行到天荒地老,此恨绵绵。主要的有上一次的for循环,还有今天说的while循环

while循环有两个,分别为while循环和do-while循环

while循环

一般形式如下:

1
2
3
4
while(表达式)
{
语句;
}

其中执行过程如下:

  1. 计算while后面括号里表达式的值,若其结果非0,则转入2,否则转3
  2. 执行循环体,转到1
  3. 退出循环,执行循环体下面的语句

由于是先执行判断后执行循环体,所以循环体可能一次都不执行。

循环体可以为空语句;,不过这个基本没有什么卵用。

do-while循环

while循环类似,还有一个do-while循环,一般形式如下:

1
2
3
4
5
do
{
语句;
}
while(表达式);

执行过程如下所示:

  1. 执行循环体,转2
  2. 计算while后面括号里表达式的值,若其结果非0,则转入1,否则转3
  3. 退出循环,执行循环体下面的语句。

注意:do……while语句最后的分号(;)不可少,否则提示出错。

这里可以看到,两种循环的区别是do-while至少执行一次。

简单举几个例子如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*beginner/while/while.c*/
#include <stdio.h>

int main()
{
int i = 0;
int sum = 0;

while (i < 101)
{
sum += i;
i++;
}

printf("1 + ... + 100 = %d\n", sum);

i = 0;
sum = 0;
do
{
sum += i;
i++;
} while (i < 101);

printf("1 + ... + 100 = %d\n", sum);

return 0;
}

相应地Makefile如下所示:

1
2
3
4
5
6
7
8
9
#beginner/for/Makefile

ALL : while

while : while.c
gcc -o while while.c

clean:
rm -f while

输入make,然后./while输出如下:

1
2
3
$./while
1 + ... + 100 = 5050
1 + ... + 100 = 5050
处无为之事,行不言之教;作而弗始,生而弗有,为而弗恃,功成不居!

欢迎关注我的其它发布渠道