请问abap中怎样判断变量的值是否为数字?
2个回答
展开全部
01
首先看下我们用while循环语句的代码,如图,
while(i<=5)
的意思就是当i变量小于等于5的时候(即不大于6),就执行while语句里的代码:输出显示当前i变量的值。
要注意的是一定要加上i++这行代码。
这行代码是在每次循环时让i变量加1,如果没有这行代码,那么i变量一直都是1,就永远不会跳出循环语句了。
02
运行结果如图,代码从1到5,共5次输出显示i变量的值。
03
同样的功能,我们把代码改成用do
while循环语句,
04
运行后得到的结果和用while循环的语句是一样的。
05
那么是不是二者没有区别呢?
不是的,我们修改下循环语句的条件就可以看到区别了。修改代码,把i=1改成i=10,其他不变,代码如图。
06
运行结果如图,可以看到没有数字输出,因为i=10时,while(i<=5)的条件是不成立的,(10<=5肯定是不可能的),所以不会执行while里的语句。
07
用do
while时呢?也修改下条件,代码如图。
08
运行结果如图,可以看到有输出一个数字10。
为什么会这样?因为do
while循环是先执行代码do里的语句,然后才去判断while里的语句,如果while语句符合条件,则进入下一次循环,不符合条件,则不再循环。也就是说,无论条件是否符合,都会至少执行一次do里的语句。所以就算10<=5是不成立的,代码还是执行了一次do里面的输出逻辑。这就是它和while语句的主要区别。
End
首先看下我们用while循环语句的代码,如图,
while(i<=5)
的意思就是当i变量小于等于5的时候(即不大于6),就执行while语句里的代码:输出显示当前i变量的值。
要注意的是一定要加上i++这行代码。
这行代码是在每次循环时让i变量加1,如果没有这行代码,那么i变量一直都是1,就永远不会跳出循环语句了。
02
运行结果如图,代码从1到5,共5次输出显示i变量的值。
03
同样的功能,我们把代码改成用do
while循环语句,
04
运行后得到的结果和用while循环的语句是一样的。
05
那么是不是二者没有区别呢?
不是的,我们修改下循环语句的条件就可以看到区别了。修改代码,把i=1改成i=10,其他不变,代码如图。
06
运行结果如图,可以看到没有数字输出,因为i=10时,while(i<=5)的条件是不成立的,(10<=5肯定是不可能的),所以不会执行while里的语句。
07
用do
while时呢?也修改下条件,代码如图。
08
运行结果如图,可以看到有输出一个数字10。
为什么会这样?因为do
while循环是先执行代码do里的语句,然后才去判断while里的语句,如果while语句符合条件,则进入下一次循环,不符合条件,则不再循环。也就是说,无论条件是否符合,都会至少执行一次do里的语句。所以就算10<=5是不成立的,代码还是执行了一次do里面的输出逻辑。这就是它和while语句的主要区别。
End
展开全部
用正则表达式。
DATA:MATCHER
TYPE
REF
TO
CL_ABAP_MATCHER.
DATA:MATCH
TYPE
C
LENGTH
1.
DATA:STR(10)
TYPE
C.
STR
=
'12345'.
MATCHER
=
CL_ABAP_MATCHER=>CREATE(
PATTERN
=
'\d+'
TEXT
=
STR
).
MATCH
=
MATCHER->MATCH(
).
如果MATCH
=
'X',则该字符串即为满足正则表达式的变量。
DATA:MATCHER
TYPE
REF
TO
CL_ABAP_MATCHER.
DATA:MATCH
TYPE
C
LENGTH
1.
DATA:STR(10)
TYPE
C.
STR
=
'12345'.
MATCHER
=
CL_ABAP_MATCHER=>CREATE(
PATTERN
=
'\d+'
TEXT
=
STR
).
MATCH
=
MATCHER->MATCH(
).
如果MATCH
=
'X',则该字符串即为满足正则表达式的变量。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询