用PL/SQL打印菱形--控制语句的练习(初级)

今天刚学PL/SQL 老师让打印一个菱形,真难弄,奋战N小时终于搞完,呵呵。
虽然有点初级,不过也有点兴奋,成功的第一步,呵呵。

我考虑的菱形形状:
*
***
*****
*******
*********
***********
*********
*******
*****
***
*

分析:这玩意的行数需要是奇数的
立即coding!


declare
v_l number:=&请输入行数(奇数);--命名方式:变量_行数
v_c number;--控制打印*的个数 命名方式:变量_字符数
v_s number;--控制打印的空格数 命名方式:变量_空格数
begin
if(v_l mod 2=0) then
dbms_output.put_line('请输入奇数!');
else
for i in 0..v_l-1
loop
--判断打印*的个数 和空格个数
if(i>v_l/2) then
v_c:=(v_l-i-1)*2+1; --根据最大行以上的各行个数来做 比如 打印五行 则第三行为中间数 第四行和第二行的个数相同 则只需计算出()*2+1 括号中的数字即可
v_s:=(v_l-v_c)/2; --根据行号和*的个数来做空格的个数
else
v_c:=i*2+1;
v_s:=(v_l-v_c)/2; --根据行号和*的个数来做空格的个数
end if ;

--打印空格的个数
for j in 1..v_s
loop
dbms_output.put(' ');
end loop;
--打印*的个数
for j in 1..v_c
loop
dbms_output.put('*');
end loop;
dbms_output.put_line('');
end loop;
end if;
end;


本人初学PL/SQL,写的程序用JAVA思想。。。可能还有更好的PL函数没用到,希望大牛们不要笑话。
最后,欢迎大牛们进行优化,谢谢。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值