-- 二、循环结构-- while、loop、repeat-- 循环控制:leave:相当于Java的break iterate:相当于Java的continue# whileWHILE 循环条件 DO
循环体;ENDWHILE;# loop[标签]: LOOP
循环体;ENDLOOP;# 可以用来模拟简单的死循环,还可以搭配leave使用# repeatREPEAT
循环体
UNTIL 结束循环的条件
ENDREPEAT;# 案例1、计算1-100的和DELIMITER $$
CREATEFUNCTION myFunction()RETURNSINTBEGINDECLARE res INTDEFAULT0;DECLARE i INTDEFAULT1;WHILE i <=100DOSET res:= res + i;SET i:= i +1;ENDWHILE;RETURN res;END $$
DELIMITER;SELECT myFunction();/*
myFunction()
5050
*/
Loop结构
#计算1-100偶数的和DELIMITER $$
CREATEFUNCTION myFunction5()RETURNSINTBEGINDECLARE res INTDEFAULT0;DECLARE i INTDEFAULT1;
myloop: LOOPIF i =101THENLEAVE myloop;ELSEIF i %2=0THENSET res:= res + i;ENDIF;SET i:= i +1;ENDLOOP;RETURN res;END $$
DELIMITER;SELECT myFunction5();/*
myFunction5()
2550
*/
Repeat结构
# 案例:计算1-100偶数的和DELIMITER $$
CREATEFUNCTION myFunction8()RETURNSINTBEGINDECLARE res INTDEFAULT0;DECLARE i INTDEFAULT1;
myrepeat: REPEATIF i %2=1THENSET i:= i +1;ITERATE myrepeat;ELSESET res:= res + i;ENDIF;SET i:= i +1;
UNTIL i=101ENDREPEAT;RETURN res;END $$
DELIMITER;SELECT myFunction8();/*
myFunction8()
2550
*/