您的位置:首页 > 数据库 > Oracle

Oracle 练习题 20131021 for 循环练习

2013-12-05 17:06 344 查看
--Oracle 练习题 20131021 for 循环练习
--1、用for循环实现一个倒置的乘法表。begin  for i in reverse 1 .. 9 loop    for j in reverse 1 .. i loop      dbms_output.put(i || 'x' || j || '=' || i * j || ' ');    end loop;    dbms_output.put_line('');  end loop;end;
--2、打印1-100之间所有的素数。declare  v_temp number := 0;begin  for i in 2 .. 100 loop    for j in 1 .. sqrt(i) loop      if mod(i,j) = 0 then        v_temp := v_temp + 1;      end if;    end loop;    if v_temp = 1 then      dbms_output.put_line(i);    end if;    v_temp := 0;  end loop;end;
--3、输入两个数求它们的最大公约数和最小公倍数。declare  v_a number := &inputa;  v_b number := &inputb;  v_rsa number;  v_rsb number;begin  for i in 1 .. (v_a+v_b)/2 loop    if mod(v_a,i)=0 and mod(v_b,i)=0 then      v_rsa := i;    end if;  end loop;    for j in reverse 1 .. v_a*v_b loop    if mod(j,v_a)=0 and mod(j,v_b)=0 then      v_rsb := j;    end if;  end loop;    dbms_output.put_line('最大公约数:' || v_rsa);  dbms_output.put_line('最小公倍数:' || v_rsb);end;
--4、打印如下菱形--    *--   ***--  *****-- *******--  *****--   ***--    *begin  --上半部分  for i in 1..4 loop    for j in 1..(5-i) loop      dbms_output.put(' ');    end loop;        for k in 1..(2*i-1) loop      dbms_output.put('*');    end loop;    dbms_output.put_line('');  end loop;  --下半部分  for i in 1..3 loop    for j in 1..i+1 loop      dbms_output.put(' ');    end loop;        for k in 1..7-(2*i) loop      dbms_output.put('*');    end loop;    dbms_output.put_line('');  end loop;  end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: