前言
流程控制结构
顺序结构:程序从上往下依次执行
分支结构:程序从两条或多条路径中选择一条去执行
循环结构:程序在满足一定条件的基础上,重复执行一段代码
循环结构
分类:
while,loop,repeat
循环控制:
iterate 类似于 continue 继续 ,结束本次循环,继续下一次
leave 类似 break 跳出,结束当前所在的循环
1,while
语法:
[标签:] while 循环条件, do
循环体;
end while [标签]
end
联想Java
while (循环条件){
循环体;
}
2,loop
语法:
[标签] loop
循环体
end loop [标签]
可以用来模拟简单的死循环
3,repeat
语法
[标签:] repeat
循环体;
until 结束循环的条件
end repeat [标签];
案例1:批量插入,根据次数 插入到admin表中多条数据
create procedure pro_while1(in insertCount int)
begin
declare i int default 1; #定义i的初始值为1
while i <= insertCount Do # 当i小于等于输入的参数
insert into admin(`username`,`password`) values(concat('huan',i),'8888'); #则 添加如下语句
set i = i + 1; # 进行自增
end while;
end
call pro_while1(100);
案例2:添加leave 批量插入,根据次数 插入到admin表中多条数据
如果次数大于20 则停止
create procedure test_while2(in insertCount int)
begin
declare i int default 1; #定义i的初始值为1
a:while i <= insertCount Do # 添加了个标签
insert into admin(`username`,`password`) values(concat('hao',i),'8888');
if i >= 20 then leave a; #如果 i大于等于 20 则跳出循环(一定要添加标签,否则失败)
end if; # 返回
set i = i + 1;# 自增
end while a; # 返回标签
end
案例3,添加iterate语句, 批量插入,根据次数 插入到admin表中多条数据 只插入偶数次
create procedure test_while3(in insertCount int)
begin
declare i int default 1; # 定义i的初始值
a:while i <= insertCount Do
set i = i + 1; #先进行自增
if mod(i,2)!=0 then iterate a; # 如果i除以2不等于0,继续循环,但不输出结果。
end if;
insert into admin(`username`,`password`) values(concat('hao',i),'8888');
end while a;
end
Mod(a,b) 在sql中的意思是 a / b 的余数
基础用法:如果id需要是偶数或者奇数时就可以使用mod。
mod(id,2)=1 是指id是奇数。
mod(id,2)=0 是指id是偶数
java:
int i = 1;
while (i<=insertCount){
i++;
if(i%2==0){
continue;
}
插入;
}