除了while循环以外,C语言还提供了do-while语句用来实现“直到型”循环结构,其一般形式:
do-while语句的执行过程(图4-3):
图4-3 do-while循环流程
步骤一,无条件执行do后面循环体中的语句。
步骤二,判断while后表达式的值,当其值为非零(真)时,转去执行步骤一;当其值为零(假)时,执行步骤三。
步骤三,退出do-while循环。
格式说明:
(1)do-while循环结构的特点是先执行循环体后判断条件,因此不管循环条件是否成立,循环体语句都至少被执行一次。这是它与while循环的本质区别。
(2)按语法要求,在do和while之间的循环体可以是一条语句,也可以是多条语句,若循环体需包含多条语句时,应用花括号“{}”括起,组成复合语句。
(3)在循环体中应有使循环趋于结束的语句,避免出现“死循环”。
(4)注意do-while循环最后的分号“;”不能省略不写,它表示do-while语句的结束。
【例4-2】用do-while语句求1到100的和。(www.xing528.com)
程序代码:
程序运行过程的流程图如图4-4所示,首先执行循环体,然后再判断循环条件是否成立,如果成立,则继续执行循环体,否则跳出循环体。通过程序的运行,我们可以看到,对同一个问题既可以用while语句处理,也可以用do-while语句处理。若二者的循环体部分是一样的,它们的结果也是一样的。但是如果while后面的表达式一开始就为假(零值)时,两种循环的结果是不同的。
图4-4 例4-2流程图
【例4-3】while和do-while循环的比较。
当输入i值小于或等于5时,二者得到的结果相同;当i>5时,二者结果就不同了。这是因为在while循环中,由于表达式i<=5为假,循环体一次也没有执行,而对于do-while循环语句来说则要执行一次循环。由此可知:当while和do-while循环具有相同的循环体,while后面的表达式的第一次的值为真时,两种循环得到的结果相同,否则,二者结果不相同。
注意:do-while和while循环的本质区别是:
(1)do-while循环,总是先执行一次循环体,然后再求表达式的值,因此,无论表达式是否为真,循环体至少执行一次。
(2)while循环先判定循环条件再执行循环体,循环体可能一次也不执行。
(3)在if语句中,while语句中,表达式后面都不加分号,而在do-while语句的表达式后面则必须加上分号。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。