语法格式
WHILE <logical expression>
<statement block>.
ENDWHILE.
只要给定的逻辑表达式的结果为True,WHILE循环语句就会重复执行目标语句,直至逻辑表达式结果变为False,循环才会终止
例子
输出结果如下所示:
例子
输出结果如下所示:
语法格式
DO [n TIMES].
<statement block>.
ENDDO.
DO语句通过无条件地执行n次目标语句块来实现无条件循环
注意,n的值不应为负或零, 如果它为零或者负数,则不执行循环中的语句
DO循环使用时,可以省略[n TIMES],但在这种情况下容易造成死循环;为了避免死循环,在不使用[n TIMES]时,注意使用EXIT关键字来保证能够退出循环
在实际使用中,我们经常会使用系统变量SY-INDEX来记录循环的次数
例子
输出结果如下所示:
例子
输出结果如下所示:
DO循环与WHILE循环的区别
① DO循环是直接循环,在循环中加上EXIT即可退出循环
② WHILE循环是满足循环条件才能够执行循环,不满足条件直接退出或者不进入循环
补充扩展:嵌套循环
输出结果如下所示:
终止循环语句可以使用以下3个关键字
关键字 | 功能描述 |
EXIT | 跳出循环 |
CONTINUE | 无条件的终止当前循环并进行下一次循环 |
CHECK | 有条件的终止当前循环并进行下一次循环 |
CONTINUE和CHECK都只是终止当前循环并继续下一个循环
如果循环语句中存在EXIT,当执行到EXIT时,将终止之后的所有循环?
例子
输出结果如下所示:
例子
输出结果如下所示:
CONTINUE关键字只能用在循环体中。如果在循环体中执行CONTINUE,当前循环过程将立即结束,程序将继续进行下一个循环过程
例子
输出结果如下所示:
例子
输出结果如下所示:
如果CHECK语句是在循环体中执行,CHECK语句后面应该接一个逻辑表达式,如果满足逻辑表达式的条件,则继续执行循环的下一步,如果不满足条件,则跳出当前循环,程序继续进行下一个循环过程
例子
输出结果如下所示:
在上述实例中,CHECK?SY-INDEX?<>?3. 是指当循环次数不等于3时,再进行之后的循环
在第1、2、4、5次循环时,"循环次数不等于3"这一条件均满足,即可执行后续的语句,因此,都进行成对的输出;在第3次循环时,"循环次数不等于3"这一条件不满足,因此,只输出了在条件判断之前的"第3循环"这一结果
根据输出的结果,我们能看到CHECK加上适当条件,可以实现IF+CONTINUE的控制效果,也就是当CHECK中的条件不满足时,程序会终止此次循环,继续执行之后的循环,并不会彻底退出循环