declare
专注于为中小企业提供成都网站建设、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业镇海免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
i int:=0;
j int:=0;
begin
while i=100 loop
j:=j+i;
i:=i+2;
end loop;
Dbms_Output.Put_Line(j);
end;
create or replace function getNewStr(str varchar) return varchar2 is
v_length number;
v_s varchar2(200);
begin
v_length := length(str);
for i in 1..v_length loop
if mod(i, 2) = 0 then
v_s := v_s || substr(str, i, 1);
end if;
end loop;
return v_s;
end;
/
select 212223242526, getNewStr('212223242526') from dual;
mod(x,y)函数的意义是 求x除以y的余数,例如mod(5,2)=1,5除以2余1,mod(2,2)=0, 2除以2等于1余数是0,所以答案是0,这个程序块就是利用这样的求余的原理来循环判断1-100之间的偶数,凡是能被2除尽的就是偶数。
代码中FOR循环100次,i从100开始反向循环,99,98··以此类推到1截止退出循环。
if mod(i,2)=0 --
mod(i,2)=0的意思是i除以2无余数,如果无余数,则说明i是偶数(只有偶数除以2才能除尽)。
then s:=s+i; --
那么变量s加上这个偶数i变成新的s,进入到下一个循环判断,若非偶数直接进入下个循环,若为偶数s的值累加,直到循环结束,100以内所有的偶数累加成为最终的变量S。
-- 奇数求和
create or replace function sum_odd(i_num number) return number
as
v_index number(8) := 1;
v_total number(10):= 0;
begin
while ( v_index = i_num )
loop
if mod(v_index,2) = 1 -- 确保为奇数
then
v_total := v_total + v_index;
end if;
v_index := v_index + 1; -- 步增
end loop;
return v_total;
end;
/
-- 偶数求和
create or replace function sum_even(i_num number) return number
as
v_index number(8) := 1;
v_total number(10):= 0;
begin
for v_index in 1 .. i_num -- 不需要再写步增的代码了
loop
if mod(v_index,2) = 0 -- 确保为偶数
then
v_total := v_total + v_index;
end if;
end loop;
return v_total;
end;
/
这个用 Excel 就可以实现了,
1。先在一个单元格输 2,
2。然后下面那个输 4,
3。接着选中这两个单元格,把鼠标放到右下角,变成黑色加号后,往后拖,一直到 98 为止,
4。最后,把这些单元格自动求和,即可。