点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我遇到了以下代码,这让我感到困惑...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我遇到了以下代码,这让我感到困惑...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我遇到了以下代码,这让我感到困惑。 请看下面的代码:
数据:itab发生0的开始, 字母TYPE C, Itab的结尾。 itab-letter ='a'。 附加itab。 itab-letter ='b'。 附加itab。 itab-letter ='c'。 附加itab。 itab-letter ='d'。 附加itab。 在itab上。 sy-tabix = 2。 写Itab字母。 出口。 ENDLOOP。
在调试模式下运行此命令时,在到达循环之前,所有4个字母都附加在内部表itab中,并且SY-TABIX的值为4
当我们执行loop语句时,即使SY-TABIX的值为 2。它也应打印b。 为什么只打印一次。
2.jpg (52.7 kB)
HS ,
SY-TABIX 是一个系统字段,其中包含正在处理的行号。
如果您从程序的开头开始在调试器中跟踪SY-TABIX的值,则在每个append语句中其值将增加1。 在这里,由于您添加了4个条目,因此循环前的值为4。
循环开始后,进程处的行号将为1,因为它已开始处理表的第一行项目。 p>
根据 Sandra Rossi 的正确建议,您不应更改这些系统字段的值。
在进入解决方案之前,让我解释一下该程序作为循环的一部分正在做的事情:
如下图所示,在内部表上循环播放,请按照以下说明了解功能 。
关于您的问题:"当我们遍历loop语句时,为什么退出循环 即使仅在SY-TABIX的值为2时运行一次,它也应该打印b。为什么只打印一次。"
上面的解释也回答了您上面提到的问题。
如果您希望程序仅打印前2个条目并退出,则您的程序应如下所示,请确保 您的WRITE语句位于EXIT命令之前。
希望您现在一切都清楚了。
致谢!
一周热门 更多>