注册 登录
编程论坛 Oracle论坛

为什么这个判断不成立

dwt 发布于 2007-10-19 10:57, 1360 次点击
为什么ch 无论输入什么值 else 的会运行呢????

declare
roll_no int;
name varchar2(10);
class varchar2(5);
subject1 number;
subject2 number;
subject3 number;
ch int;
begin
while 1=1 loop
dbms_output.put_line('是否继续添加');
ch:= &ch;
if ch>1 then
exit;
else
dbms_output.put_line('编号:');
roll_no := &roll_no;
dbms_output.put_line('姓名:');
name := '&name';
dbms_output.put_line('班级:');
class:= '&class';
dbms_output.put_line('成绩1:');
subject1 :=&subject1;
dbms_output.put_line('成绩2:');
subject2 :=&subject2;
dbms_output.put_line('成绩3:');
subject3 :=&subject3;

end if;

insert into student values (roll_no,name,class,subject1,subject2,subject3);

end loop;
dbms_output.put_line('通过');
exception
when others then
dbms_output.put_line('异常');
end;

4 回复
#2
ILoveMK2007-10-19 12:33

我测试过了没事,为什么你会说else一直都运行呢?

#3
dwt2007-10-20 09:21
我写的时候 不管 ch 值为多少 else 都会执行啊
#4
dwt2007-10-20 09:26
我想用这样的方法实现循环添加值;
当ch 的 输入的值小于1 时就退出;
#5
ILoveMK2007-10-20 10:37
以下是引用dwt在2007-10-20 9:21:09的发言:
我写的时候 不管 ch 值为多少 else 都会执行啊

我的意思是你根据什么说else会执行,其实满足了ch<1是不会执行的,我测试过了。

[此贴子已经被作者于2007-10-20 10:37:58编辑过]

1