FOREACH循环类似FOR循环,但并不是通过一个SQL查询返回的行进行迭代,而是通过数组值的元素进行迭代。通常,FOREACH通过一个组合表达式的部件加以迭代。
语法格式如下。
label标签提高了可读性,尤其是当LOOP语句嵌套时,但前提是确保END LOOP语句中的标签与同一LOOP语句开头的标签匹配。
target变量必须是一个数组,并且它接收数组值的连续切片,其中每一个切片都有SLICE指定的维度数。元素会被按照存储顺序访问,而不管数组的维度数。
给定一个正SLICE值,FOREACH通过数组的切片而不是单一元素迭代。SLICE值必须是一个不大于数组维度数的整数常量。
statements语句中的EXIT、EXIT WHEN、CONTINUE或CONTINUE WHEN会导致循环或循环的当前迭代提前结束。
示例2.17: 本例使用FOREACH语句打印输出综合评价值大于等于9的商品名。
程序代码如下。
程序运行结果如下。