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
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',则该字符串即为满足正则表达式的变量。