ABAP-RETURN,STOP,BREAK,CONTIE

举报
百里丶落云 发表于 2023/01/09 16:36:10 2023/01/09
【摘要】 HELLO ,这里是百里,一个学习中的ABAPER.今天想讲一下return ,stop ,breadk contie 的使用方式. 这个东西涉及不多但是还是分享下 . RETURNRETURN用来退出当前执行的程序块,例如一个FORM、METHOD、报表事件块,不管是否出现在循环(LOOP)中,RETURN都会退出当前执行的程序块,而不仅仅是退出循环(如果是在Form、METHOD中,只会...

HELLO ,这里是百里,一个学习中的ABAPER.
今天想讲一下return ,stop ,breadk contie 的使用方式. 这个东西涉及不多但是还是分享下 .

RETURN

RETURN用来退出当前执行的程序块,例如一个FORMMETHOD报表事件块,不管是否出现在循环(LOOP)中,RETURN都会退出当前执行的程序块,而不仅仅是退出循环(如果是在Form、METHOD中,只会退出Form、METHOD,不会退出Form、METHOD被调用所在的报表事件块,即退Form、METHOD后继续向被调用点后面执行)

STOP

INITIALIZATION中的STOP会导致跳转到AT SELECTION-SCREEN OUTPUT事件块;

如果STOP在AT SELECTION-SCREEN OUTPUT块里,则只是退出当前块(STOP后面语句不执行而已),仅接着是显示选择屏幕;

AT SELECTION-SCREEN [ON]…选择屏幕事件块中的STOP也只是退出当前事件块,继续后面的事件块;

另外,即使STOP在循环中,还是在FORM,METHOD,也是直接从被调用的点退出所在事件块,而不仅仅只退出当前循环、FORM、METHOD,这与直接在事件块中的效果是一样的;

EXIT

INITIALIZATION中的EXIT会导致跳转到AT SELECTION-SCREEN OUTPUT事件块;

如果EXIT在AT SELECTION-SCREEN OUTPUT块里,则只是退出当前块(EXIT后面语句不执行而已),仅接着是显示选择屏幕;

AT SELECTION-SCREEN [ON]…选择屏幕事件块中的EXIT也只是退出当前事件块,继续后面的事件块;

START-OF-SELECTION开始往后的事件块,如果出现EXIT,则会开始listprocessor(列表处理),并跳转到相应的List输出界面(前提条件是要在退出前已经向屏幕输出内容了,否则也不会跳转);注:END-OF-SELECTION事件块也会被跳过

另外,如果EXIT在循环(DO、WHILE、LOOP)里,只是跳出当前循环而已

如果是在FORM,METHOD中,而非循环中,则退出当前的FORM、METHOD,其作用与RETURN类似

CHECK

CHECK跳转的前提是<expr>为假时。

CHECK只是跳出当前事件块,继续下一个事件块的处理,相当于方法的return;

另外,如果CHECK在循环(DO、WHILE、LOOP)里,只是跳出当前循环而已

如果CHECK出现在循环以外,退出的是当前执行的程序块(processing block),例如一个FORM,METHOD,或EVENT。

代码:

Report YH_SEP_15.  
DO 5 TIMES.  
CHECK SY-INDEX BETWEEN 3 AND 4.  
Write / SY-INDEX.  
ENDDO.

结果

3
4

LEAVE

LEAVE PROGRAM. 退出整个程序

LEAVE TO TRANSACTION ta

LEAVE LIST-PROCESSING. 从list processor回到dialog processor

LEAVE TO LIST-PROCESSING 控制权从dialog processor转交给list processor

LEAVE { SCREEN | {TO SCREEN dynnr} }

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。