From 6de7876910d9b137a366aa4ede2364e57c7d91af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=A2=A6=E6=A2=A6?= <3195337478@qq.com> Date: Wed, 11 Oct 2023 04:58:22 +0000 Subject: [PATCH] =?UTF-8?q?=E9=99=88=E6=A2=A6=E6=A2=A6=E7=9A=84=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 陈梦梦 <3195337478@qq.com> --- .../20231011.md" | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 "01 \351\231\210\346\242\246\346\242\246/20231011.md" diff --git "a/01 \351\231\210\346\242\246\346\242\246/20231011.md" "b/01 \351\231\210\346\242\246\346\242\246/20231011.md" new file mode 100644 index 0000000..2ab4cc9 --- /dev/null +++ "b/01 \351\231\210\346\242\246\346\242\246/20231011.md" @@ -0,0 +1,96 @@ +作业 + +```mysql +-- 要求,循环部分,要用三种语法分别做一遍 +-- 写一个存储过程,可以输入一个整数,输入小于或等于0时,提示非法输入,并中止这个存储过程, +-- 否则先判断这个数和是不是大于20,如果大于20就从1循环到这个数,并找出所有的偶数(但遇到逢10的数要跳过)。小于等于20就提示数太小了,并退出。 + +drop procedure if exists pro; +-- 要求,循环部分,要用三种语法分别做一遍 + +-- 1.使用loop循环: +delimiter // +create procedure pro_loop(in num int) +a:begin + -- 1. 定义变量 + declare i int default 1; + -- 2. 判断,如果小于等于20 提示非法输入,并中止这个存储过程 + if num <= 0 then select '非法输入'; leave a; + ##小于等于20就提示数太小了,并退出 + elseif num <=20 then select '数太小了'; leave a; + #大于20,循环判断 + else + b:loop + # 如果是10的倍数,就跳出本次,继续循环 + if i % 10 = 0 then set i = i+1;iterate b; + #如果是2的倍数,就打印 + elseif i % 2 = 0 then select i; + end if; + set i = i+1; + # 退出循环 + if i > num then leave b; end if; + end loop; + end if; +end // +delimiter ; + +call pro_loop(-3); +call pro_loop(8); +call pro_loop(45); + +# 2.使用while循环: +delimiter // +create procedure pro_while(in num int) +a:begin + declare i int default 1; + if num <= 0 then select '非法输入'; leave a; + elseif num <=20 then select '数太小了'; leave a; + else + b:while i<=num do + if i % 10 = 0 then set i = i+1;iterate b; + elseif i % 2 = 0 then select i; + end if; + set i = i+1; + end while; + end if; +end // +delimiter ; + +call pro_while(-3); +call pro_while(3); +call pro_while(40); + +# 3.使用repeat循环: +delimiter // +create procedure pro_repeat(in num int) +a:begin + declare i int default 1; + if num <= 0 then select '非法输入 '; leave a; + elseif num <=20 then select '数太小了 '; leave a; + else + b:repeat + if i % 10 = 0 then set i = i+1;iterate b; + elseif i % 2 = 0 then select i; + end if; + set i = i+1; + until i>num + end repeat b; + end if; +end // +delimiter ; + +call pro_repeat(-3); +call pro_repeat(3); +call pro_repeat(40); +``` + +笔记 + +leave 语句 + +跳出循环,类似于break + +iterate 语句 + +只能用在循环语句中,表示重新开始循环 类似于continue ’再次循环‘ + -- Gitee