[SAP ABAP] 循环处理
本文主要讲解SAP ABAP中的循环处理相关知识点
1. WHILE循环
使用WHILE指定循环条件(条件循环)
语法格式
WHILE <logical expression>
<statement block>.
ENDWHILE.
只要给定的逻辑表达式的结果为True,WHILE循环语句就会重复执行目标语句,直至逻辑表达式结果变为False,循环才会终止
WHILE循环执行由WHILE和ENDWHILE命令包围的语句
例1
输出结果如下所示:
例2
输出结果如下所示:
例3
输出结果如下所示:
2. DO循环
使用DO指定循环次数(计数循环)
语法格式
DO [n TIMES].
<statement block>.
ENDDO.
DO语句通过无条件地执行n次目标语句块来实现无条件循环
注意,n可以是数字或者变量,n的值不应为负数或零, 如果它为零或者负数,则不执行循环中的语句
DO循环使用时,可以省略[n TIMES],但在这种情况下容易造成死循环;为了避免死循环,在不使用[n TIMES]时,注意使用EXIT关键字来保证能够退出循环
在实际使用中,我们经常会使用系统变量SY-INDEX来记录循环的次数
例4
输出结果如下所示:
例5
输出结果如下所示:
例6
输出结果如下所示:
例7
输出结果如下所示:
DO循环与WHILE循环的区别
① DO循环是直接循环,在循环中加上EXIT即可退出循环
② WHILE循环是满足循环条件才能够执行循环,不满足条件直接退出或者不进入循环
补充扩展:嵌套循环
DO语句内部还可以实现多层嵌套,为了保证程序的可读性,建议嵌套最多不要超过6层
输出结果如下所示:
3. 循环语句的终止
终止循环语句可以使用以下3个关键字
关键字 | 功能描述 |
EXIT | 完全跳出循环 |
CONTINUE | 无条件的终止当前循环并进行下一次循环 |
CHECK | 有条件的终止当前循环并进行下一次循环 |
CONTINUE和CHECK都只是终止当前循环并继续下一个循环
3.1 EXIT
如果循环语句中存在EXIT,当执行到EXIT时,将终止之后的所有循环
例8
输出结果如下所示:
例9
输出结果如下所示:
3.2 CONTINUE
CONTINUE关键字只能用在循环体中。如果在循环体中执行CONTINUE,当前循环过程将立即结束,程序将继续进行下一个循环过程
例10
输出结果如下所示:
例11
输出结果如下所示:
3.3 CHECK
如果CHECK语句是在循环体中执行,CHECK语句后面应该接一个逻辑表达式,如果满足逻辑表达式的条件,则继续执行循环的下一步,如果不满足条件,则跳出当前循环,程序继续进行下一个循环过程
例12
输出结果如下所示:
在上述实例中,CHECK SY-INDEX <> 3. 是指当循环次数不等于3时,再进行之后的循环
在第1、2、4、5次循环时,"循环次数不等于3"这一条件均满足,即可执行后续的语句,因此,都进行成对的输出;在第3次循环时,"循环次数不等于3"这一条件不满足,因此,只输出了在条件判断之前的"第3循环"这一结果
根据输出的结果,我们能看到CHECK加上适当条件,可以实现IF+CONTINUE的控制效果,也就是当CHECK中的条件不满足时,程序会终止此次循环,继续执行之后的循环,并不会彻底退出循环
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)