From 87f8162048eaf0f55f0b4e91e11fa60d75fa886a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=95=8F?= <3234934487@qq.com> Date: Wed, 11 Oct 2023 10:21:25 +0800 Subject: [PATCH] Zy --- ...5\23420231010 \346\265\201\347\250\213.md" | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 "56 \350\265\265\346\225\217/\344\275\23420231010 \346\265\201\347\250\213.md" diff --git "a/56 \350\265\265\346\225\217/\344\275\23420231010 \346\265\201\347\250\213.md" "b/56 \350\265\265\346\225\217/\344\275\23420231010 \346\265\201\347\250\213.md" new file mode 100644 index 0000000..2efb538 --- /dev/null +++ "b/56 \350\265\265\346\225\217/\344\275\23420231010 \346\265\201\347\250\213.md" @@ -0,0 +1,83 @@ +作业 + +``` +-- 写一个存储过程,可以输入一个整数,输入小于或等于0时,提示非法输入,并中止这个存储过程, +-- 否则先判断这个数和是不是大于20,如果大于20就从1循环到这个数,并找出所有的偶数(但遇到逢10的数要跳过)。小于等于20就提示数太小了,并退出。 + +-- 要求,循环部分,要用三种语法分别做一遍 +#whlie +drop procedure xx; +delimiter // +CREATE procedure xx(in num int) +a:BEGIN +declare i int DEFAULt 1; + if num<=0 then + SELECT "非法输入"; + leave a; + elseif num > 20 then + b:while i<=num do + if i%2=1 or i%10=0 then set i = i+1; + iterate b ; + end if; + SELECT i; + set i = i+1; + end while b; + else SELECT "数太小了"; + leave a; +end if; +end // +delimiter ; +call xx (50) + +#loop +drop procedure zz; +delimiter // +CREATE procedure zz(in num int) +a:BEGIN +declare i int DEFAULt 1; + if num<=0 then + SELECT "非法输入"; + leave a; + elseif num > 20 then + b:loop + if i%2=1 or i%10=0 then set i = i+1; + iterate b ; + end if; + if i>num then leave b; + end if; + SELECT i; + set i = i+1; + end loop b; + else SELECT "数太小了"; + leave a; +end if; +end // +delimiter ; +call zz (50) +#repeat +drop procedure ff; +delimiter // +CREATE procedure ff(in num int) +a:BEGIN +declare i int DEFAULt 1; + if num<=0 then + SELECT "非法输入"; + leave a; + elseif num > 20 then + b:repeat + if i%2=1 or i%10=0 then set i = i+1; + iterate b ; + else SELECT i; + end if; + set i = i+1; + UNTIL i>num + end repeat b; + + else SELECT "数太小了"; + leave a; +end if; +end // +delimiter ; +call ff (100) +``` + -- Gitee