专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

oracle用while循环出一个金字塔形状

ins518 2024-10-18 08:44:39 技术文章 22 ℃ 0 评论

一个小小的while循环也有很多要注意的地方,一不小心就容易错了!

declare

num_input number := '&num';

num_i number;

num_j number;

begin

num_i:=0;--注意while循环时要在begin开始时赋初值

--控制行数

while num_i

num_j:=0;--这里要注意,因为用的变量与下面打空格的变量名一样,而且进行下一次循环时要把这个变量置0

--其实用java语言说这个是局部变量,下次还要进来的时候这个值要重新置0

--打印空格

while num_j

dbms_output.put(' ');

num_j:=num_j+1;

end loop;

--打印*

num_j:=0;--这里也是同样的原因,上面的局部变量在这边也要重新置0,不然也会出错

whilenum_j<(num_input-num_i) loop

dbms_output.put('* ');

num_j:=num_j+1;

end loop;

dbms_output.put_line('');

num_i:=num_i+1;

end loop;

end;

这样运行就没问题了,当然应该还有更好的办法,这只是我的一种思路!谢谢观看!

附上for循环输出金字塔的代码:

declare

num_input number := '&num';

num_i number := 1;

num_j number := 1;

begin

--控制行数

for num_i in 0 .. num_input loop

--打印空格

for num_j in 1 .. num_iloop

dbms_output.put(' ');

end loop;

--打印*

for num_j in 1 ..num_input-num_i loop

dbms_output.put('* ');

end loop;

dbms_output.put_line('');

end loop;

end;

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表