09.[SAP ABAP] 终止循环



09.SAP ABAP 终止循环

文章目录

  • [09.SAP ABAP 终止循环](#09.[SAP ABAP] 终止循环)
    • [一. EXIT](#一. EXIT)
    • [二. CONTINUE](#二. CONTINUE)
    • [三. CHECK](#三. CHECK)
      • [1. 事件块中](#1. 事件块中)
      • [2. 子程序或方法中](#2. 子程序或方法中)
      • [3. 在循环中(常用于过滤)](#3. 在循环中(常用于过滤))
      • [四. 总结](#四. 总结)

ABAP 中,循环语句的终止主要通过以下几种方式实现,具体取决于你使用的循环类型( DOWHILELOOP AT)以及业务逻辑需求。

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

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

一. EXIT

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

  • 作用: 跳出最内层的循环(DO/WHILE/LOOP AT) , 继续执行循环之后的代码。
  • 相当于其他语言中的break.
ABAP 复制代码
DO 10 TIMES.
  IF sy-index > 5.
    EXIT. " 循环到第6次时退出
  ENDIF.
  WRITE: / sy-index.
ENDDO.

在嵌套循环中,EXIT 只退出当前所在的循环层。

二. CONTINUE

  • **作用:**不终止整个循环,但跳过当前循环体中剩余语句,直接开始下一次迭代。
  • 相当于其他语言中的 continue
ABAP 复制代码
DO 5 TIMES.
  IF sy-index = 3.
    CONTINUE. " 跳过第3次
  ENDIF.
  WRITE: / sy-index.
ENDDO.

三. CHECK

CHECK 是一个非常常用且强大的流程控制语句 ,用于条件判断和提前退出当前处理块(如事件块、子程序、循环体等)。

  • 条件为真(TRUE) :继续执行后续代码。
  • 条件为假(FALSE):直接退出当前上下文

1. 事件块中

ABAP 复制代码
START-OF-SELECTION.
  CHECK sy-subrc = 0.        " 如果前面 SELECT 失败(sy-subrc ≠ 0),则不继续
  WRITE: / 'Processing data...'.

2. 子程序或方法中

ABAP 复制代码
FORM validate_input.
  CHECK input IS NOT INITIAL.
  WRITE: / 'Input is valid'.
  " ... 其他处理
ENDFORM.

3. 在循环中(常用于过滤)

ABAP 复制代码
LOOP AT it_spfli INTO wa_spfli.
  CHECK wa_spfli-carrid = 'LH'.   " 只处理 LH 航空公司
  WRITE: / wa_spfli-connid.
ENDLOOP.

四. 总结

场景 推荐写法 说明
循环中跳过不符合条件的行 CHECK condition. 更简洁,可读性高
需要复杂逻辑(如 ELSE 分支) IF ... ENDIF. CHECK不支持ELSE
退出整个子程序 CHECK condition.IF NOT condition. RETURN. ENDIF. 两者等效
仅退出循环 不要用 CHECK(它不会退出整个循环,只会跳过当前轮次) 此时用 EXIT
相关推荐
Slow、16 小时前
PPDS生产计划排产-MRP运行
sap·apo
爱喝水的鱼丶4 天前
SAP-ABAP:SAP基础数据校验工具开发系列博客(共5篇)第五篇:性能优化与上线运维:保障高并发场景下的工具稳定运行
运维·学习·性能优化·sap·abap·erp·经验交流
爱喝水的鱼丶4 天前
SAP-ABAP:SAP 内存管理详解:从架构到优化
开发语言·学习·架构·sap·abap·内存管理
SAP_奥维奥科技5 天前
中国企业ERP选型白皮书(2026研究版)
云计算·sap·sap系统
爱喝水的鱼丶6 天前
SAP-ABAP:SAP基础数据校验工具开发系列博客(共5篇)第三篇:SAP接口对接开发:实现数据的实时/批量校验交互
运维·数据库·学习·性能优化·sap·abap·经验交流
duangww6 天前
IDCNACCTBLN 增强实现负号提前
abap
小羔羊的官方学习账号6 天前
【SAP PP】生产工单相关后台配置
sap·配置·pp
smzyydwwb6 天前
BW数据库链接信息包DEBUG
数据库·sap·bw
修电脑的猫6 天前
SAP DATABASE缓存日志清理
缓存·sap
爱喝水的鱼丶6 天前
SAP-ABAP:SAP 简单报表输出开发系列(共6篇) 第四篇:SAP 报表异常处理机制:数据校验与消息提示规范落地
开发语言·数据库·学习·算法·sap·abap