第二种格式为:CASE WHEN expr_condition THEN statement_list [WHEN expr_condition THEN statement_list] [ELSE statement_list] END CASE 其中expr_condition参数表示条件判断语句,该格式下,WHEN语句将被逐个执行,直到某个expr_condition表达式为真,则这行对应THEN关键字后面的statement_list语句。如果没有匹配,ELSE子句里的语句被执行。
LOOP语句。循环语句用来重复执行某些语句,与IF和CASE相比,LOOP只是创建一个循环操作的过程,并不进行条件判断。LOOP内的语句一直重复执行直到循环被退出。跳出循环过程使用LEAVE子句,LOOP语句基本格式为:[label] LOOP statement_list END LOOP[label] label表示LOOP语句的标注名称,该参数可以省略,statement_list表示需要执行的语句。
LEAVE语句。从LOOP语句的例子中可知LEAVE语句用来退出任何被标注的流程控制构造,LEAVE语句基本格式为:LEAVE label
ITERATE语句。将执行顺序转到语句段开头处,语句基本格式为:ITERATE lable ITERATE只可以出现在LOOP、REPEAT和WHILE语句内。ITERATE的意思为再次循环,label参数表示循环的标志。ITERATE语句必须跟在循环标志前面。例子中p1=0,如果p1的值小于10时,重复执行p1加1操作;p1大于等于10并且小于20时,打印消息'p1 is between 10 and 20';p1大于20时,退出循环。
REPEAT语句。创建一个带条件判断的循环过程,每次语句执行完毕后,会对条件表达式进行判断,表达式为真循环结束,否则重复执行循环中的语句。语句基本格式:[label]:REPEAT statement_list UNTIL expr_condition END REPEAT [label]
WHILE语句。WHILE语句创建一个带条件判断的循环过程,与REPEAT不同,WHILE在执行语句时先对指定的表达式进行判断,为真则执行循环内的语句,否则退出循环。语句基本格式:[label] WHILE expr_condition DO statement_list END WHILE [label]