3.3.4 FOR语句
FOR语句的功能是指定一个起始值,一个终止值,在这个范围内反复执行一段代码,并由一个循环变量控制循环的执行。循环变量从起始值开始,每执行一次循环,循环变量自动加1或减1,直到与终止值相等时,循环结束。FOR语句的格式为:
FOR 循环变量 IN[REVERSE]起始值..终止值 LOOP
循环体
END LOOP
在FOR语句中,在IN的后面,从起始值开始到终止值之间的整数构成一个集合,集合中的元素依次加1。在执行FOR语句时,循环变量先取集合中的第一个元素,执行一次循环体,然后依次取集合中的每个元素,分别执行一次循环体,直到把集合中的元素都取一次。如果使用REVERSE,则按照相反的顺序取集合中的元素,即先取最后一个元素,然后依次取前面的元素,直到第一个元素。
例如,上述求表达式1+2+3+……+100的代码可以改用FOR语句实现,代码如下:
DECLARE
total INTEGER:=0;
BEGIN
FOR i IN 1..100 LOOP
total:=total+i;
END LOOP;
dbms_output.put_line(total);
END;
从上面的例子可以看出,在FOR循环中,循环变量不需要定义,也不需要显式地将集合中的元素赋给它,也不需要进行条件判断,所以用FOR语句编写的代码比较简洁。需要注意的是,循环变量只能在FOR循环内使用。