今天不讲业务知识,讲一个ABAP代码, 这个问题困扰了我好几年,突然间被老婆的辣条解决了。
就算你不懂ABAP也要把文章看完,说不定啥时候就用上了 。
业务背景:
学员报了我的ABAP一对一课程,其他代码都懂,就是LOOP
AT循环不懂。这个对于没有任何开发基础的学员来讲,第一次接触确实有点比较难理解,我每次讲到这个地方,临时举不同的例子, 今天讲课时看到老婆正 在吃辣条
,就拿这个作为案例,结果学员一下子就理解了 。
先说数据吧,有一个成绩单,表名叫 gt_cjd , 里面有三条数据
我们要用一个叫做 WRITE 的代码,把上面表格内容输出到屏幕上。
问题是: WRITE 每次只能输出一个单元格,怎么办呢?
就用到一个叫做 LOOP AT ......ENDLOOP的代码循环输出。
大家如果想了解一些基础的ABAP知识,可以看我的公开课,
那么什么叫循环呢?我们来看下代码,
38行到40行 loop at开始 ....endloop结束 就是循环。
前面 gt_cjd 表里不是有三条数据吗。
上图中38行,就是把 gt_cjd 表中的第一条数据放到 gs_cjd 里面。
相当于撕下了第一根辣条。
然后,39行中 WRITE 输出了三次,gs_cjd-xm(姓名) ,gs_cjd-bj(班级),gs_cjd-fs (分数)
相当于第一根辣条分三口吃完
40行与38行呼应,代表第一次循环结束
我们吃完第一个辣条怎么办,是不是要去撕二根?因此程序又去运行38行
如此类推,撕下第三根,第四根,一直到结束为止,程序就不再回到38行了,运行41行之后的代码了,循环结束。