6.8 退出条件循环:do while

while循环和for循环都是入口条件循环,在每次执行循环之前先检查判断条件,这样循环中的语句就有可能一次也不执行。C也有退出条件循环,判断条件在执行循环之后进行检查,这样就可以保证循环体中的语句至少被执行一次,这被称为do while循环。程序清单6.15给出了一个例子。

程序清单6.15 do_while.c程序

阅读 ‧ 电子书库

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

程序清单6.15中的程序在用户输入13之前反复读取输入值。以下是一个运行的例子:

阅读 ‧ 电子书库

使用了while循环的与之等价的程序会长一点,就像程序清单6.16中那样。

程序清单6.16 entry.c程序

阅读 ‧ 电子书库

阅读 ‧ 电子书库

下面是do while循环的一般形式:

阅读 ‧ 电子书库

statement部分可以是简单语句或复合语句。请注意do while循环本身是一个语句,因此它需要一个结束的分号。请参见图6.5。

阅读 ‧ 电子书库

图6.5 do while循环的结构

do while循环至少要被执行一次,因为在循环体被执行之后才进行判断。与之相反,for或者while循环可以一次都不执行,因为它们是在执行之前进行判断。应该把do while循环仅用于那些至少需要执行一次循环的情况。例如一个密码程序要包括一个循环,它的伪代码如下:

阅读 ‧ 电子书库

要避免以下伪代码中的这种do while结构:

阅读 ‧ 电子书库

这里,在用户回答no之后仍将执行some clever stuff部分,因为判断来得太迟了。