[SAP ABAP] 循环处理

发布时间:2024年01月11日

1. WHILE循环

语法格式

WHILE <logical expression> 
  <statement block>. 
ENDWHILE. 

只要给定的逻辑表达式的结果为True,WHILE循环语句就会重复执行目标语句,直至逻辑表达式结果变为False,循环才会终止

例子

输出结果如下所示:

例子

输出结果如下所示:

2. DO循环

语法格式

DO [n TIMES]. 
  <statement block>. 
ENDDO. 

DO语句通过无条件地执行n次目标语句块来实现无条件循环

注意,n的值不应为负或零, 如果它为零或者负数,则不执行循环中的语句

DO循环使用时,可以省略[n TIMES],但在这种情况下容易造成死循环;为了避免死循环,在不使用[n TIMES]时,注意使用EXIT关键字来保证能够退出循环

在实际使用中,我们经常会使用系统变量SY-INDEX来记录循环的次数

例子

输出结果如下所示:

例子

输出结果如下所示:

DO循环与WHILE循环的区别

① DO循环是直接循环,在循环中加上EXIT即可退出循环

② WHILE循环是满足循环条件才能够执行循环,不满足条件直接退出或者不进入循环

补充扩展:嵌套循环

输出结果如下所示:

3. 循环语句的终止

终止循环语句可以使用以下3个关键字

关键字功能描述
EXIT跳出循环
CONTINUE无条件的终止当前循环并进行下一次循环
CHECK有条件的终止当前循环并进行下一次循环

CONTINUE和CHECK都只是终止当前循环并继续下一个循环

3.1 EXIT

如果循环语句中存在EXIT,当执行到EXIT时,将终止之后的所有循环?

例子

输出结果如下所示:

例子

输出结果如下所示:

3.2 CONTINUE

CONTINUE关键字只能用在循环体中。如果在循环体中执行CONTINUE,当前循环过程将立即结束,程序将继续进行下一个循环过程

例子

输出结果如下所示:

例子

输出结果如下所示:

3.3 CHECK

如果CHECK语句是在循环体中执行,CHECK语句后面应该接一个逻辑表达式,如果满足逻辑表达式的条件,则继续执行循环的下一步,如果不满足条件,则跳出当前循环,程序继续进行下一个循环过程

例子

输出结果如下所示:

在上述实例中,CHECK?SY-INDEX?<>?3. 是指当循环次数不等于3时,再进行之后的循环

在第1、2、4、5次循环时,"循环次数不等于3"这一条件均满足,即可执行后续的语句,因此,都进行成对的输出;在第3次循环时,"循环次数不等于3"这一条件不满足,因此,只输出了在条件判断之前的"第3循环"这一结果

根据输出的结果,我们能看到CHECK加上适当条件,可以实现IF+CONTINUE的控制效果,也就是当CHECK中的条件不满足时,程序会终止此次循环,继续执行之后的循环,并不会彻底退出循环

文章来源:https://blog.csdn.net/Hudas/article/details/135468566
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。