[SAP ABAP] 循环处理

30 篇文章 1 订阅

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中的条件不满足时,程序会终止此次循环,继续执行之后的循环,并不会彻底退出循环

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值