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 0000000000000000000000000000000000000000..2ab4cc9e7f064601d43e87f9576005f8cd20d9aa --- /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 ’再次循环‘ +