1、相关知识的:
1.while语句
while 条件 do
程序块
end while
特征:先判断条件,再执行程序,条件不成立时,退出循环
2.repeat语句
repeat
程序块
until 条件
end repeat
特征:先执行程序,再判断条件,条件成立时,退出循环
因此,程序块至少会被执行一次
3.loop语句
[语句标号:]loop
程序块
end loop [结束标号]
特征:一直执行循环,遇到leave 标号语句时,退出循环
4.退出循环
leave 语句标号
2、代码1如下--while写法
-- 求1到100的和
drop procedure if exists do_while;
delimiter $$
create procedure do_while(out sum_v2 int)
begin
-- 过程体
declare i int default 1;
declare a int default 0;
while i<=100 do
set a = a+i;
set i = i+1;
end while;
set sum_v2 = a;
end$$
delimiter ;
call do_while(@R); -- 调用过程
select @R;
代码2如下--repeat写法
-- 求1到100的和
drop procedure if exists do_repeat;
delimiter $$
create procedure do_repeat(out sum_v2 int)
begin
-- 过程体
declare i int default 1; -- 初始值为1
declare a int default 0; -- 存放求和结果
repeat
set a = a+i;
set i = i+1;
until i>=101
end repeat ;
set sum_v2 = a;
end$$
delimiter ;
call do_repeat(@R); -- 调用过程
select @R;
代码3如下--loop写法
-- 求1到100的和
drop procedure if exists do_loop;
delimiter $$
create procedure do_loop(out sum_v2 int)
begin
-- 过程体
declare i int default 1; -- 初始值为1
declare a int default 0; -- 存放求和结果
label:loop -- 标记为label
set a = a+i;
set i = i+1;
if i>=101 then
leave label; -- 退出loop
end if;
end loop label;
set sum_v2 = a;
end$$
delimiter ;
call do_repeat(@R); -- 调用过程
select @R;