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
DROPPROCEDUREIFEXISTSpro_while;CREATEPROCEDUREpro_while()BEGINDECLAREsumINTDEFAULT0;WHILEsum<100DOINSERTINTO`chapter`.`batch`(`id`,`name`,`age`)VALUES(CONCAT(sum,''),CONCAT('while',sum),sum);SETsum=sum+1;ENDWHILE;END;
4、调用存储过程: CALL pro_while();
相关推荐《mysql视频教程》
三、REPEAT 循环
1、语法: REPEAT doSomething UNTIL condition END REPEAT ;
2、说明:doSomething 先执行相关操作 ,再判断是否满足条件,满足,结束循环。(和WHILE循环相反) --- 先执行,后判断。
3、示例:创建 repeat 循环的函数 fun_repeat
DROPFUNCTIONIFEXISTSfun_repeat;CREATEFUNCTIONfun_repeat()RETURNSINTBEGINDECLAREsumINTDEFAULT1000;REPEATINSERTINTO`chapter`.`batch`(`id`,`name`,`age`)VALUES(CONCAT(sum,''),CONCAT('repeat',sum),sum);SETsum=sum+1;UNTILsum>1100ENDREPEAT;--满足条件结束循环RETURN1;END;
4、执行函数: SELECT fun_repeat();
四、LOOP 循环
1、语法:
loop_name:LOOPIFconditionTHENLEAVEloop_name;ENDIF;doSomethingENDLOOP;
2、说明:
loop_name 为循环名字,自定义,不可用关键字。
doSomething 执行的相关操作。
condition 满足条件,则结束循环。--- 先判断,后执行。
3、示例:创建 loop 循环的存储过程 pro_loop
DROPPROCEDUREIFEXISTSpro_loop;CREATEPROCEDUREpro_loop()BEGINDECLAREsumintDEFAULT10000;loop_sums:LOOP--【开始】loop名字,自定义IFsum>10100THENLEAVEloop_sums;--满足条件,则结束循环ENDIF;INSERTINTO`chapter`.`batch`(`id`,`name`,`age`)VALUES(CONCAT(sum,''),CONCAT('loop',sum),sum);SETsum=sum+1;ENDLOOP;--【结束】END;
4、调用存储过程: CALL pro_loop();
五、总结
1、WHILE 循环,先判断,后执行。满足条件,执行,执行循环。
2、REPEAT 循环,先执行,后判断。满足条件,不执行,结束循环。
3、LOOP 循环,先执行,后判断。满足条件,不执行,结束循环。
4、当条件为false时,REPEAT循环也能执行一次,类似于 java中的 do {} while (condition); 循环; 而 WHILE、LOOP 循环无法执行。
以上是“While、Loop和Repeat三种循环语句有什么区别”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。