『C语言教程』3. 循环结构¶
T09:04:00+08:00 「计算机最擅长的事情,就是重复」
一、while 和 do while¶
假如想要计算机在满足某一条件时反复执行一段逻辑,那么就需要用到循环。
我们在平常生活中的表述大概是:「只要 没课,就一直 睡觉」,对应 C 语言的语句就是 while 语句。
C | |
---|---|
有点像是循环版本的 if 语句,他的运行方式就像 if 一样,不过每次 while 语句整体执行完的时候会重新再执行,直至条件为假时才执行后续语句。
比如我们想要输出 1~3:
执行 第1行:声明变量 i
并初始化为 1.
执行 第2行(此时 i
为 1):判断条件 i <= 3
,值为真,执行循环内的语句。
执行 第2~5行大括号所表示的语句块(循环内的语句):输出 i
,并且让 i
自增。
循环内语句执行完成,再次判断条件。
执行 第2行(此时 i
为 2):判断条件 i <= 3
,值为真,执行循环内的语句。
执行 第2~5行大括号所表示的语句块(循环内的语句):输出 i
,并且让 i
自增。
循环内语句执行完成,再次判断条件。
执行 第2行(此时 i
为 3):判断条件 i <= 3
,值为真,执行循环内的语句。
执行 第2~5行大括号所表示的语句块(循环内的语句):输出 i
,并且让 i
自增。
循环内语句执行完成,再次判断条件。
执行 第2行(此时 i
为 4):判断条件 i <= 3
,值为 假,不再 执行循环内语句,继续执行循环外后续语句。
执行 第6行(继续执行后续语句)。
还有另一种 do while 语句,其区别就是,while 是每次循环之前判断,而 do while 是每次循环之后判断,也就是说 do while 至少执行一次。
C | |
---|---|
注意 do while 的 while 后面要有
;
二、for 循环¶
- 第一句话
在进入循环的时候执行。
- 第二句话
在每次循环开始前执行,若值为 真 则循环,若值为 假 则退出循环。
- 第三句话
每次循环结束后执行。
注意:这三句话可以是空语句(可以空着),但是中间的 ;
要留着。
那么可以发现 while(<条件>)
其实相当于 for(;<条件>;)
。
注意:在 标准C(C89)版本中(C99 以前)不允许在初始化语句内声明变量,所以下面的例子中变量声明部分都写在了
for
外面。 而自 C99 起,初始化语句内支持声明变量,因此可以直接写在里面:for (int i = 1; i <= 100; i++)
。
例1、输出 1~100 的数:
例2、计算1~100的和:
例3、计算1~100中所有偶数的和:
C | |
---|---|
与 if 语句一样,如果需要循环不止一个语句,需要使用 语句块(也就是用大括号括起来):
for 中的三句话不一定都要写上,如果不需要可以空着:
输出:
Text Only