
ABAP语言 WHILE的所有用法? 40
如题WHILE表达式.ENDWHILE.这个我会,我想问其他的用法比如VARY......什么的。最好举例子。注意是ABAP里的WHILE...
如题 WHILE 表达式.ENDWHILE.
这个我会, 我想问其他的用法 比如VARY......什么的。
最好举例子。
注意 是 ABAP里的WHILE 展开
这个我会, 我想问其他的用法 比如VARY......什么的。
最好举例子。
注意 是 ABAP里的WHILE 展开
4个回答
展开全部
abap help 里有啊.
使用 WHILE 的条件循环
如果只要条 件为真,就 不止一次执 行语句,可 以如下使用 WHILE 语句编程:
语法
WHILE <condition> [VARY <f> FROM <f1> NEXT <f2>].
<statement block>
ENDWHILE.
只要 <condition> 是真,或系 统发现 EXIT、 STOP 或 REJECT 语句,系统 将继续执行 由 WHILE 语句引导、 ENDWHILE 结束的语句 块(参见 终止循环)。
对于 <condition>, 可以使用 编程逻辑表达式 中描述的任 何逻辑表达 式。
系统字段 SY-INDEX 中包含已执 行的循环次 数。
可以任意嵌 套 WHILE 循环,也可 与其他循环 结合使用。
WHILE 语句的 VARY 选项与 DO 循环的 VARYING 选项工作方 式一样(参 见使用 DO 的无条件循环)。允许 每次执行循 环时为变量 <f> 重新赋值。 <f1>、 <f2>、 <f3>、 ... 必需是内存 中类型相同 和长度相等 的一系列等 距字段。第 一次循环时 ,将 <f1> 分配给 <f>,第 二次循环时 ,将 <f2> 分配给 <f>,以 此类推。可 以在一个 WHILE 语句中使用 多个 VARY 选项。
使用 WHILE 语句要避免 死循环。请 记住,在一 段时间之后 ,WHILE 语句条件应 变为假,或 者系统能够 找到 EXIT、 STOP 或 REJECT 语句退出循 环。
DATA: LENGTH TYPE I VALUE 0,
STRL TYPE I VALUE 0,
STRING(30) TYPE C VALUE 'Test String'.
STRL = STRLEN( STRING ).
WHILE STRING NE SPACE.
WRITE STRING(1).
LENGTH = SY-INDEX.
SHIFT STRING.
ENDWHILE.
WRITE: / 'STRLEN: ', STRL.
WRITE: / 'Length of string:', LENGTH.
产生如下输 出:
T e s t S t r i n g
STRLEN: 11
Length of string: 11
此处使用 WHILE 循环确定字 符串的长度 。做法是: 每次执行循 环时,都将 字符串左移 一位,直到 仅包含空格 。选择本例 主要是为了 说明 WHILE 语句。但是 ,确定字符 串长度更简 便和有效的 办法是通过 使用内置的 函数 STRLEN, 这在示例中 也可看出。
使用 WHILE 的条件循环
如果只要条 件为真,就 不止一次执 行语句,可 以如下使用 WHILE 语句编程:
语法
WHILE <condition> [VARY <f> FROM <f1> NEXT <f2>].
<statement block>
ENDWHILE.
只要 <condition> 是真,或系 统发现 EXIT、 STOP 或 REJECT 语句,系统 将继续执行 由 WHILE 语句引导、 ENDWHILE 结束的语句 块(参见 终止循环)。
对于 <condition>, 可以使用 编程逻辑表达式 中描述的任 何逻辑表达 式。
系统字段 SY-INDEX 中包含已执 行的循环次 数。
可以任意嵌 套 WHILE 循环,也可 与其他循环 结合使用。
WHILE 语句的 VARY 选项与 DO 循环的 VARYING 选项工作方 式一样(参 见使用 DO 的无条件循环)。允许 每次执行循 环时为变量 <f> 重新赋值。 <f1>、 <f2>、 <f3>、 ... 必需是内存 中类型相同 和长度相等 的一系列等 距字段。第 一次循环时 ,将 <f1> 分配给 <f>,第 二次循环时 ,将 <f2> 分配给 <f>,以 此类推。可 以在一个 WHILE 语句中使用 多个 VARY 选项。
使用 WHILE 语句要避免 死循环。请 记住,在一 段时间之后 ,WHILE 语句条件应 变为假,或 者系统能够 找到 EXIT、 STOP 或 REJECT 语句退出循 环。
DATA: LENGTH TYPE I VALUE 0,
STRL TYPE I VALUE 0,
STRING(30) TYPE C VALUE 'Test String'.
STRL = STRLEN( STRING ).
WHILE STRING NE SPACE.
WRITE STRING(1).
LENGTH = SY-INDEX.
SHIFT STRING.
ENDWHILE.
WRITE: / 'STRLEN: ', STRL.
WRITE: / 'Length of string:', LENGTH.
产生如下输 出:
T e s t S t r i n g
STRLEN: 11
Length of string: 11
此处使用 WHILE 循环确定字 符串的长度 。做法是: 每次执行循 环时,都将 字符串左移 一位,直到 仅包含空格 。选择本例 主要是为了 说明 WHILE 语句。但是 ,确定字符 串长度更简 便和有效的 办法是通过 使用内置的 函数 STRLEN, 这在示例中 也可看出。
追问
我知道按F1
我按照那个写 一直不对
WHILE [VARY FROM NEXT ].
就这个 举个例子 不用全写 就写这句就行,说下每个变量是什么类型就行
展开全部
在代码里面,将光标放在WHILE关键字上,再按F1,WHILE的所有用法都在里面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
2B
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ABAP里面while一般不怎么用的~代码F1就有
追问
你没看见别人回答的么?
我不管用的少还是多 我也知道F1里有
F1只是说下格式
我问的是让你们举个例子 懂?
另外说下 我的F1里全是日语的 不要问什么 不要让我改
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询