MySQL数据库-存储过程和函数-REPEAT和WHILE语句

REPEAT语句

REPEAT语句是有条件控制的循环语句。当满足特定条件时,就会跳出循环语句。REPEAT语句的基本语法形式如下:

[begin_label:] REPEAT

statement_list;

UNTILsearch_condition

END REPEAT [end_label]

其中,参数statement_list表示循环执行语句。参数search_condition表示循环结束的条件,满足该条件时循环结束。

例如:求1+2+...+10的和。

代码示例:

mysql> delimiter $    #改变结束符为'$'
mysql> create procedure pro_test_repeat(in input int,out op int)       #创建存储过程
    -> begin
    -> declare flag int;    #定义变量
    -> set flag=0;    #初始化
    -> repeat    #循环开始
    -> set flag=flag+1;    #令flag自增1
    -> set input=input+flag;    #计算0+1+...+10的结果
    -> until flag=10    #循环的结束条件
    -> end repeat;    
    -> set op=input;    
    -> end;
    -> $
mysql> delimiter ;    #改变结束符为';'
mysql> call pro_test_repeat(0,@op);    #调用存储过程
mysql> select @op;    #打印变量op

该示例循环执行flag加1的操作,flag值为10时结束循环,没结束钱让input=input+flag来求出0+1+...+10的值,最后循环结束后再赋值给变量op。REPEAT循环都用END REPEAT结束。

WHILE语句

WHILE语句也是有条件控制的循环语句,但WHILE语句和REPEAT语句是不一样的。WHILE语句是当满足条件时执行循环内的语句。WHILE语句的基本语法形式如下:

[begin_label:] WHILE search_condition DO

Statement_list

END WHILE[end_label]

其中,参数statement_condition表示循环执行的条件,满足该条件时循环执行;参数statement_list表示循环的执行语句。

例如:求1+2+...+10的和

代码示例:

mysql> delimiter $    #改变结束符为'$'
mysql> create procedure pro_test_while(in input int,out op int)    #创建存储过程
    -> begin
    -> declare flag int;
    -> set flag=0;
    -> while flag<10 do    #循环结束条件
    -> set flag=flag+1;
    -> set input=input+flag;    #计算0+1+....+10的结果
    -> end while;
    -> set op=input;
    -> end;
    -> $
mysql> delimiter ;    #改变结束符为';'
mysql> call pro_test_while(0,@op);    #调用存储过程
mysql> select @op;    #打印变量op

该示例循环执行flag+1操作,flag的值为10时结束循环,先通过while后面的条件判断flag是否满足要求,满足则执行input=input+flag。不满足则跳出循环就和C语言里的while do比较相似。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长天一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值