[SAP ABAP] 循环处理

1. WHILE循环

语法格式

WHILE <logical expression> <statement block>. 
ENDWHILE. 

只要给定的逻辑表达式的结果为True,WHILE循环语句就会重复执行目标语句,直至逻辑表达式结果变为False,循环才会终止

例子

输出结果如下所示:

例子

输出结果如下所示:

2. DO循环

语法格式

DO [n TIMES]. <statement block>. 
ENDDO. 

DO语句通过无条件地执行n次目标语句块来实现无条件循环

注意,n的值不应为负或零, 如果它为零或者负数,则不执行循环中的语句

DO循环使用时,可以省略[n TIMES],但在这种情况下容易造成死循环;为了避免死循环,在不使用[n TIMES]时,注意使用EXIT关键字来保证能够退出循环

在实际使用中,我们经常会使用系统变量SY-INDEX来记录循环的次数

例子

输出结果如下所示:

例子

输出结果如下所示:

DO循环与WHILE循环的区别

① DO循环是直接循环,在循环中加上EXIT即可退出循环

② WHILE循环是满足循环条件才能够执行循环,不满足条件直接退出或者不进入循环

补充扩展:嵌套循环

输出结果如下所示:

3. 循环语句的终止

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

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

CONTINUE和CHECK都只是终止当前循环并继续下一个循环

3.1 EXIT

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

例子

输出结果如下所示:

例子

输出结果如下所示:

3.2 CONTINUE

CONTINUE关键字只能用在循环体中。如果在循环体中执行CONTINUE,当前循环过程将立即结束,程序将继续进行下一个循环过程

例子

输出结果如下所示:

例子

输出结果如下所示:

3.3 CHECK

如果CHECK语句是在循环体中执行,CHECK语句后面应该接一个逻辑表达式,如果满足逻辑表达式的条件,则继续执行循环的下一步,如果不满足条件,则跳出当前循环,程序继续进行下一个循环过程

例子

输出结果如下所示:

在上述实例中,CHECK SY-INDEX <> 3. 是指当循环次数不等于3时,再进行之后的循环

在第1、2、4、5次循环时,"循环次数不等于3"这一条件均满足,即可执行后续的语句,因此,都进行成对的输出;在第3次循环时,"循环次数不等于3"这一条件不满足,因此,只输出了在条件判断之前的"第3循环"这一结果

根据输出的结果,我们能看到CHECK加上适当条件,可以实现IF+CONTINUE的控制效果,也就是当CHECK中的条件不满足时,程序会终止此次循环,继续执行之后的循环,并不会彻底退出循环

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/338584.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wxWidgets实战:使用mpWindow绘制阻抗曲线

选择模型时&#xff0c;需要查看model的谐振频率&#xff0c;因此需要根据s2p文件绘制一张阻抗曲线。 如下图所示&#xff1a; mpWindow 左侧使用mpWindow&#xff0c;右侧使用什么&#xff1f; wxFreeChart https://forums.wxwidgets.org/viewtopic.php?t44928 https://…

【conda】pip安装报错,网络延时问题解决记录(亲测有效)

【conda】pip安装报错&#xff0c;网络延时问题解决记录 1. pip install 报错如下所示2. 解决方案&#xff1a; 1. pip install 报错如下所示 pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(hostfiles.pythonhosted.org, port443): Read timed out.…

Logstash:迁移数据到 Elasticsearch

在生产环境中&#xff0c;不使用 Apache Kafka 等流平台进行数据迁移并不是一个好的做法。 在这篇文章中&#xff0c;我们将详细探讨 Apache Kafka 和 Logstash 的关系。 但首先让我们简单了解一下 Apache Kafka 的含义。 Apache Kafka 是分布式流平台&#xff0c;擅长实时数据…

10个提高 Python Web 开发效率的VS Code插件

VS Code具有灵活、便捷和丰富的可用插件库&#xff0c;是Web开发人员中非常受欢迎的代码编辑器。 本文介绍10个VS Code插件&#xff0c;它们可以提高你作为Web开发人员的工作效率。 1. Live Preview Live Preview插件支持在VS Code的小型浏览器中查看网站。因此&#xff0c;无…

【Python】Sigmoid和Hard Sigmoid激活函数对比总结及示例

Sigmoid和Hard Sigmoid是两种常用的激活函数&#xff0c;它们在神经网络中起到非线性变换的作用。以下是它们之间的对比和优缺点总结&#xff1a; Sigmoid激活函数&#xff1a; 优点&#xff1a; 输出范围是0到1之间&#xff0c;可以用于二分类问题。函数形状相对平滑&#…

【Oracle】Oracle的安装与连接

Oracle基础 一、ORACLE 简介 1、oracle概述 ORACLE 数据库系统以分布式数据库为核心的一组软件产品 支持多用户、大事务量的事务处理数据安全性和完整性控制支持分布式数据处理可移植性强&#xff0c;跨平台 2、oracle体系架构 1&#xff09;数据库 Oracle 数据库是数据…

【Linux】Linux系统编程——Linux目录结构

Linux的文件系统呈现为一种树状结构&#xff0c;以根目录/为最顶层&#xff0c;其下分布着各种不同的子目录&#xff0c;每个目录都有其特定的用途和功能。下面是Linux目录结构的详细介绍&#xff1a; 1. 根目录 / 根目录是整个文件系统的基础。所有的目录和文件都从这里开始…

常用的网站

PIXEL MOTION 注册-YesPMP平台 模型下载 - Ourblender - 专业的三维素材库 Vega AI 创作平台 夏沫的AI小站 Tripo AI B站视频下载工具 | 极简纯净

优化CentOS 7.6的HTTP隧道代理网络性能

在CentOS 7.6上&#xff0c;通过HTTP隧道代理优化网络性能是一项复杂且细致的任务。首先&#xff0c;我们要了解HTTP隧道代理的工作原理&#xff1a;通过建立一个安全的隧道&#xff0c;HTTP隧道代理允许用户绕过某些网络限制&#xff0c;提高数据传输的速度和安全性。然而&…

SpringBoot集成Skywalking实现分布式链路追踪

官方网址&#xff1a; Apache SkyWalking官方文档&#xff1a; SkyWalking 极简入门 | Apache SkyWalking下载地址&#xff1a;Downloads | Apache SkyWalking Agent&#xff1a;以探针的方式进行请求链路的数据采集&#xff0c;并向管理服务上报&#xff1b; OAP-Service&am…

观成科技-加密C2框架EvilOSX流量分析

工具简介 EvilOSX是一款开源的&#xff0c;由python编写专门为macOS系统设计的C2工具&#xff0c;该工具可以利用自身释放的木马来实现一系列集成功能&#xff0c;如键盘记录、文件捕获、浏览器历史记录爬取、截屏等。EvilOSX主要使用HTTP协议进行通信&#xff0c;通信内容为特…

万界星空科技家具制造业MES系统解决方案

家具行业专业化生产和信息化管理程度较低。随着企业规模的迅速扩大&#xff0c;家具行业中用现有的凭手工发放图纸、制作bom、发放工艺说明文件越来越难以适应现代家具行业、已经成为家具行业快速发展的瓶颈。必须通过实施万界星空科技MES生产管理软件&#xff0c;实现部门之间…