1、 1 2 3循环语句 算法中的循环结构是由循环语句来实现的 循环结构有两种 当型与直到型 当型循环结构 当条件满足时反复执行循环体 直到型循环结构 反复执行循环体直到条件满足 对应于程序框图中的两种循环结构 一般程序设计语言中也有当型 WHILE型 和直到型 UNTIL型 两种语句结构 1 UNTIL语句的一般格式是 DO循环体LOOPUNTIL条件 DO 做什么 LOOPUNTIL 绕环回线走 直到达到某种条件为止 思考 参照其直到型循环结构对应的程序框图 说说计算机是按怎样的顺序执行UNTIL语句的 即WHILE语句和UNTIL语句 1 UNTIL语句的一般格式是 DO循环体LOOPUNT
2、IL条件 从UNTIL型循环结构分析 计算机执行该语句时 先执行一次循环体 然后进行条件的判断 如果条件不满足 继续返回执行循环体 然后再进行条件的判断 这个过程反复进行 直到某一次条件满足时 不再执行循环体 跳到LOOPUNTIL语句后执行其他语句 是先执行循环体后进行条件判断的循环语句 循环至少被执行一次 2 WHILE语句的一般格式是 WHILE条件循环体WEND 其中循环体是由计算机反复执行的一组语句构成的 WHLIE后面的 条件 是用于控制计算机执行循环体或跳出循环体的 WHILE 当 时候 WEND 朝 方向行走 2 WHILE语句的一般格式是 WHILE条件循环体WEND 当计算
3、机遇到WHILE语句时 先判断条件的真假 如果条件符合 就执行WHILE与WEND之间的循环体 然后再检查上述条件 如果条件仍符合 再次执行循环体 这个过程反复进行 直到某一次条件不符合为止 这时 计算机将不执行循环体 直接跳到WEND语句后 接着执行WEND之后的语句 提问 通过对照 大家觉得WHILE型语句与UNTIL型语句之间有什么区别呢 区别 在WHILE语句中 是当条件满足时执行循环体 而在UNTIL语句中 是当条件不满足时执行循环体 练习1 编写程序 计算自然数1 2 3 99 100的和 分析 这是一个累加问题 我们可以用WHILE型语句 也可以用UNTIL型语句 i 1S 0
4、DO S S ii i 1 LOOPUNTIL i 100 PRINTS END i 1S 0 WHLIEi 100 S S i i i 1 WEND PRINTS END 例8 函数y x2 3x 5 从x 1开始连续输入19个自然数进行取值 输出相应的函数值 用程序语言进行编程 n 1 DO y x 2 3 x 5 LOOPUNTILn 20 PRINT x x y y END n n 1 程序 直到型 当型 n 1 WHILEn 20 y x 2 3 x 5 WEND PRINT x x y y END n n 1 程序 练习3 图1 1 20 转化成程序语言 程序框图 程序 INPUT
5、 a b d a b d DO m a b 2 f m 2 2 g a 2 2 IFg f 0THEN b m ELSE a m ENDIF LOOPUNTILABS a b dORf 0 PRINTm END 继续 是 是 否 程序框图 开始 f x x2 2 输入误差d和初值a b b m 否 a m a b d或f m 0 输出m 结束 返回 练习4 求S 1 1 2 1 3 1 n 编写程序 程序 INPUT n n i 1 S 0 WHILEi n S S 1 i i i 1 WEND PRINT S S END 练习5 P33页A组T3 程序 INPUT n n i 1 S 0 W
6、HILEi n S S i 1 i i i 1 WEND PRINT S S END 结束 否 根据P7页图1 1 2 将程序框图转化为程序语句 练习 P32T1 分析 仔细观察 该程序框图中既有条件结构 又有循环结构 INPUT n ni 2DOr nMODii i 1LOOPUNTILi nORr 0IFr 0THENPRINT nisnotaprimenumber ELSEPRINT nisaprimenumber ENDIFEND 程序 练习7 P32T2 编写一个程序 输入正整数n 计算它的阶乘n n n n 1 3 2 1 小结 WHILE条件循环体WEND DO循环体LOOPUNTIL条件