SAP 养家用辣条理解 ABAP 中循环问题

作者:SAP养家 约 3 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Data Engineering, 开发, 数据工程
SAP 养家用辣条理解 ABAP 中循环问题 - 封面图
SAP 养家用辣条理解 ABAP 中循环问题 - 封面图

今天不讲业务知识,讲一个ABAP代码, 这个问题困扰了我好几年,突然间被老婆的辣条解决了。

就算你不懂ABAP也要把文章看完,说不定啥时候就用上了 。

业务背景:

学员报了我的ABAP一对一课程,其他代码都懂,就是LOOP

AT循环不懂。这个对于没有任何开发基础的学员来讲,第一次接触确实有点比较难理解,我每次讲到这个地方,临时举不同的例子, 今天讲课时看到老婆正 在吃辣条

,就拿这个作为案例,结果学员一下子就理解了 。

先说数据吧,有一个成绩单,表名叫 gt_cjd , 里面有三条数据

SAP 养家用辣条理解 ABAP 中循环问题 - 封面图
SAP 养家用辣条理解 ABAP 中循环问题 - 封面图

我们要用一个叫做 WRITE 的代码,把上面表格内容输出到屏幕上。

问题是: WRITE 每次只能输出一个单元格,怎么办呢?

就用到一个叫做 LOOP AT ......ENDLOOP的代码循环输出。

大家如果想了解一些基础的ABAP知识,可以看我的公开课,

SAP 养家用辣条理解 ABAP 中循环问题 - 封面图
SAP 养家用辣条理解 ABAP 中循环问题 - 封面图

那么什么叫循环呢?我们来看下代码,

38行到40行 loop at开始 ....endloop结束 就是循环。

SAP 养家用辣条理解 ABAP 中循环问题 - 封面图
SAP 养家用辣条理解 ABAP 中循环问题 - 封面图

前面 gt_cjd 表里不是有三条数据吗。

上图中38行,就是把 gt_cjd 表中的第一条数据放到 gs_cjd 里面。

相当于撕下了第一根辣条。

SAP 养家用辣条理解 ABAP 中循环问题 - 封面图
SAP 养家用辣条理解 ABAP 中循环问题 - 封面图

然后,39行中 WRITE 输出了三次,gs_cjd-xm(姓名) ,gs_cjd-bj(班级),gs_cjd-fs (分数)

相当于第一根辣条分三口吃完

40行与38行呼应,代表第一次循环结束

SAP 养家用辣条理解 ABAP 中循环问题 - 封面图
SAP 养家用辣条理解 ABAP 中循环问题 - 封面图

我们吃完第一个辣条怎么办,是不是要去撕二根?因此程序又去运行38行

如此类推,撕下第三根,第四根,一直到结束为止,程序就不再回到38行了,运行41行之后的代码了,循环结束。

SAP 养家用辣条理解 ABAP 中循环问题 - 封面图
SAP 养家用辣条理解 ABAP 中循环问题 - 封面图
SAP养家

关于作者:SAP养家

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「SAP养家用辣条理解ABAP中循环问题.md」整理生成,仅用于内部技术分享与学习交流。