加入收藏 | 设为首页 | 会员中心 | 我要投稿 92站长网 (https://www.92zhanzhang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

While、Loop和Repeat三种循环语句有什么区别

发布时间:2022-02-17 13:49:30 所属栏目:MySql教程 来源:互联网
导读:这篇文章主要介绍While、Loop和Repeat三种循环语句有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 相同点:不可单独使用,主要用于存储过程和函数FUNCTION中。区别:WHILE先判断,后执行;满足条件才执行。REPEAT和LOOP
While、Loop和Repeat三种循环语句有什么区别
       这篇文章主要介绍While、Loop和Repeat三种循环语句有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
 
       相同点:不可单独使用,主要用于存储过程和函数FUNCTION中。区别:WHILE先判断,后执行;满足条件才执行。REPEAT和LOOP先执行,后判断;满足条件就结束循环。当条件为false时,REPEAT也能执行一次;其他两个语句无法执行。
 
一、MySQL循环概述
 
         MySQL中有三种循环,分别是 WHILE , REPEAT , LOOP (据说还有 goto),不可单独使用,主要用于 存储过程 PROCEDURE 和 函数 FUNCTION 中。
 
二、WHILE 循环
 
1、语法: WHILE condition DO doSomething END WHILE ;
 
2、说明: condition 条件满足情况下,则执行循环体内容,不满足,则结束循环。(如:2>1,满足;1<2,不满足。) --- 先判断,后执行。
 
3、示例: 创建 while 循环的存储过程 pro_while
 
DROP PROCEDURE IF EXISTS pro_while ;
CREATE PROCEDURE pro_while()
BEGIN
 DECLARE  sum INT DEFAULT 0 ;
 WHILE sum < 100 DO
INSERT INTO `chapter`.`batch` (`id`, `name`, `age`)
VALUES (CONCAT(sum,''),CONCAT('while',sum) , sum);
SET sum = sum + 1;
    END WHILE ;
END;
4、调用存储过程: CALL pro_while();
 
相关推荐《mysql视频教程》
 
三、REPEAT 循环
 
1、语法: REPEAT doSomething UNTIL condition END REPEAT ;
 
2、说明:doSomething 先执行相关操作 ,再判断是否满足条件,满足,结束循环。(和WHILE循环相反) --- 先执行,后判断。
 
3、示例:创建 repeat 循环的函数 fun_repeat
 
DROP FUNCTION IF EXISTS fun_repeat ;
CREATE FUNCTION fun_repeat() RETURNS INT
BEGIN
DECLARE  sum INT DEFAULT 1000 ;
REPEAT
INSERT INTO `chapter`.`batch` (`id`, `name`, `age`)
VALUES (CONCAT(sum,''),CONCAT('repeat',sum) , sum);
SET sum = sum + 1;
UNTIL sum > 1100 END REPEAT ; -- 满足条件结束循环
RETURN 1;
END;
4、执行函数: SELECT fun_repeat();
 
四、LOOP 循环
 
1、语法:
 
loop_name : LOOP
    IF condition THEN
        LEAVE loop_name ;
    END IF;
    doSomething
END LOOP;
2、说明:
 
loop_name 为循环名字,自定义,不可用关键字。
doSomething 执行的相关操作。
condition 满足条件,则结束循环。--- 先判断,后执行。
3、示例:创建 loop 循环的存储过程 pro_loop
 
DROP PROCEDURE IF EXISTS pro_loop ;
CREATE PROCEDURE pro_loop()
BEGIN
DECLARE sum int DEFAULT 10000 ;
loop_sums : LOOP -- 【开始】loop 名字,自定义
IF sum > 10100 THEN
LEAVE loop_sums ; -- 满足条件,则结束循环
END IF;
INSERT INTO `chapter`.`batch` (`id`, `name`, `age`)
VALUES (CONCAT(sum,''),CONCAT('loop',sum) , sum);
SET sum = sum + 1;
END LOOP ;  -- 【结束】
END ;
4、调用存储过程: CALL pro_loop();
 
五、总结
 
1、WHILE 循环,先判断,后执行。满足条件,执行,执行循环。
 
2、REPEAT 循环,先执行,后判断。满足条件,不执行,结束循环。
 
3、LOOP 循环,先执行,后判断。满足条件,不执行,结束循环。
 
4、当条件为false时,REPEAT循环也能执行一次,类似于 java中的 do {} while (condition); 循环; 而 WHILE、LOOP 循环无法执行。
 
以上是“While、Loop和Repeat三种循环语句有什么区别”这篇文章的所有内容,感谢各位的阅读!

(编辑:92站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!