策8意循环 第8章循环 8.1三条循环语句 8.2循环常用的三种基本控制方式 8.3短路循环语句LOOP 8.4循环语句与其它分支判断语句的嵌套 85循环语句应用举例 8.6多重循环 BACK
第8章 循 环 第8章 循 环 8.1 三条循环语句 8.2 循环常用的三种基本控制方式 8.3 短路循环语句LOOP 8.4 循环语句与其它分支判断语句的嵌套 8.5 循环语句应用举例 8.6 多重循环
策8意循环 8.1三条循环语句 811循环语句 DOWHILE DO WHILE语句的语句格式 DO WHILE语句的语句格式为 DO WHILE〈条件表达式 〈循环体〉 ENDDO 循环语句格式中, DO WHILE为循环起始语句 ENDDO为循环结束语句循环体是几条语句组成的语句行 序列,执行循环体能完成的功能即为此循环的基本功能
第8章 循 环 8.1 三条循环语句 8.1.1 循环语句DOWHILE 1. DO WHILE语句的语句格式 DO WHILE语句的语句格式为: DO WHILE〈条件表达式〉 〈循环体〉 ENDDO 循环语句格式中, DO WHILE 为循环起始语句 ENDDO为循环结束语句 循环体是几条语句组成的语句行 序列, 执行循环体能完成的功能即为此循环的基本功能
策8意循环 2. DO WHILE语句的执行过程 图8—1给出了 DO WHILE语句的执行流程 当条件表达式为假时,退出循环;否则,重复执行 循环体 ENDDO结束循环,执行下一条语句 图8—1 DO WHILE循环语句流程图
第8章 循 环 2. DO WHILE语句的执行过程 图8 — 1给出了DO WHILE语句的执行流程。 图8 — 1 DO WHILE循环语句流程图
策8意循环 ①系统在执行程序过程中,遇到了循环起始语句 DO WHILEI时,首先计算〈条件表达式〉的值。 ②执行到循环结束语句 ENDDO时,表示循环体已 结束,系统“回跳”到循环起始语句去再一次执行DO WHILE语句。 ENDDO和 DO WHILE语句必须成对出现。在循 环体内必须有使〈条件表达式〉逐渐为假的语句否则, 将进入死循环
第8章 循 环 ① 系统在执行程序过程中, 遇到了循环起始语句 DO WHILE时, 首先计算〈条件表达式〉的值。 ② 执行到循环结束语句ENDDO时, 表示循环体已 结束, 系统“回跳”到循环起始语句去再一次执行DO WHILE语句。 ENDDO 和 DO WHILE 语句必须成对出现。 在循 环体内必须有使〈条件表达式〉逐渐为假的语句 否则, 将进入死循环
策8意循环 812循环语句SCAN 1.SCAN语句的语句格式 SCAN语句的语句格式为 SCAN[〈范围〉][FOR〈条件1〉] L WHILE〈条件2〉]〈循环体〉 ENDSCAN 语句格式中,SCAN为循环起始语句, ENDSCAN为 循环结束语句。本语句对范围内满足条件的记录执行 〈循环体〉。默认范围值为ALL
第8章 循 环 8.1.2 循环语句SCAN 1. SCAN语句的语句格式 SCAN语句的语句格式为: SCAN[〈范围〉][FOR〈条件1〉] [WHILE〈条件2〉] 〈循环体〉 ENDSCAN 语句格式中, SCAN为循环起始语句, ENDSCAN为 循环结束语句。本语句对范围内满足条件的记录执行 〈循环体〉。 默认范围值为ALL
策8意循环 2.SCAN语句的执行过程 在执行程序时,遇到SCAN语句,系统即在范围内顺 序查找第一条满足条件的记录(条件项以 WHILE开头时 情况与以FOR开头的有差别,见第3章中命令的一般形 式)。找到后,即执行循环体部分,然后再顺次往下查找 下一条满足条件的记录……搜索完范围内最后一条记录 后,SCAN语句执行完毕
第8章 循 环 2. SCAN语句的执行过程 在执行程序时, 遇到SCAN语句, 系统即在范围内顺 序查找第一条满足条件的记录(条件项以WHILE开头时, 情况与以FOR开头的有差别, 见第3章中命令的一般形 式)。 找到后, 即执行循环体部分, 然后再顺次往下查找 下一条满足条件的记录 …… 搜索完范围内最后一条记录 后, SCAN语句执行完毕
策8意循环 813循环语句FOR 1.FOR语句的语句格式 FOR语句的语句格式为 FOR〈循环变量名〉=〈数字表达式1 TO〈数字表达式2〉[STEP〈数字表达式3)] 〈循环体〉 ENDFOR/NEXT 语句格式中,〈循环变量名〉既可是一个内存变量, 也可以是某数组的一个下标变量。若不存在,则自动建 立之
第8章 循 环 8.1.3 循环语句FOR 1. FOR语句的语句格式 FOR语句的语句格式为: FOR〈循环变量名〉=〈数字表达式1〉 TO〈数字表达式2〉[STEP〈数字表达式3〉] 〈循环体〉 ENDFOR/NEXT 语句格式中, 〈循环变量名〉既可是一个内存变量, 也可以是某数组的一个下标变量。 若不存在, 则自动建 立之
策8意循环 2.FOR语句的执行过程 图8-2给出了FOR语句的执行流程。 初始化循环变量 测试循环变量是否越界。若越界,退出循环;若没有 越界,执行循环体 循环体 循环变量=循环变量原值+步长 图8—2FOR循环的执行流程
第8章 循 环 2. FOR语句的执行过程 图8 — 2给出了FOR语句的执行流程。 图8 — 2 FOR循环的执行流程
策8意循环 第一步,系统首先求出〈数字表达式1〉、〈数字 表达式2〉、〈数字表达式3〉(若缺省,默认为1)的值,并 分别作为循环初值、循环界值、步长,存入内存有关区 域 第二步,系统给循环变量赋初值。 第三步,判断循环变量越界否。若越界,则FOR循环 执行完毕,转去执行 ENDFOR(或NEXT)后的第一条语句 若不越界,则执行循环体 第四步,遇到 ENDFOR(或NEXT)时,循环变量内容增 加步长值。然后,转第三步
第8章 循 环 第一步, 系统首先求出〈数字表达式1〉、 〈数字 表达式2〉、 〈数字表达式3〉(若缺省,默认为1)的值, 并 分别作为循环初值、 循环界值、 步长, 存入内存有关区 域。 第二步, 系统给循环变量赋初值。 第三步, 判断循环变量越界否。 若越界, 则FOR循环 执行完毕, 转去执行ENDFOR(或NEXT)后的第一条语句 若不越界, 则执行循环体。 第四步, 遇到ENDFOR(或NEXT)时, 循环变量内容增 加步长值。 然后, 转第三步
策8意循环 对于FOR语句的执行流程,再作如下说明: ①三个表达式的值求出后,即送内存有关区域存储 以后,在执行循环体时,若对三个表达式中所含变量内容作 了修改,也不会影响到循环初值、循环界值、步长 ②给循环变量赋初值后,若初值已经越界,则一次也不 执行循环体,FOR语句就告结束,转 ENDFOR(或NEXT后 语句。 ③当步长大于0时,循环变量值大于循环界值时为越界 当步长小于0时,循环变量值小于循环界值时为越界。 ④执行循环体时,若修改了循环变量值,将会影响到循 环执行次数。 BACK
第8章 循 环 对于FOR语句的执行流程, 再作如下说明: ① 三个表达式的值求出后, 即送内存有关区域存储。 以后, 在执行循环体时, 若对三个表达式中所含变量内容作 了修改, 也不会影响到循环初值、 循环界值、 步长。 ② 给循环变量赋初值后, 若初值已经越界, 则一次也不 执行循环体, FOR语句就告结束, 转ENDFOR(或NEXT)后 一语句。 ③ 当步长大于0时, 循环变量值大于循环界值时为越界 当步长小于0时, 循环变量值小于循环界值时为越界。 ④ 执行循环体时, 若修改了循环变量值, 将会影响到循 环执行次数