新手请教:关于函数返回值的问题~!!!??

bbzz7 2004-12-24 09:09:23
写了一个函数用来判断是否是数字的:
function HasNum(ss:string):bool;
var i:integer;
begin
for i := 1 To Length(ss) do
begin
if (ss[i]>='0') or (ss[i]<='9') then
result:=True
else
begin
break;
result:=FALSE;
end;
end;
end;
我把它放在implementation和{$R *.dfm}之间~~~
然后调用的代码是:
。。。。。。。。。。。
isnum:=HasNum(edit3.Text);
if isnum=true then
query1.sql.Add('select * From xszl where 班级='''+combobox1.Text+''''+' and '+combobox3.Text+''''+edit3.Text+'''')
else showmessage('学号查询请输入数字!');
。。。。。。。。。。。。。。。。。。。。
编译后,系统提示:
Return value of function‘HasNum’might be undefind

望各位前辈指点一下,并提醒一下小弟在使用函数和过程中应注意的一些问题
先谢谢了~~!!
...全文
119 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzlingaaa 2004-12-25
  • 打赏
  • 举报
回复
>>turbozzh(涡轮超人)
解其表不解其根,照你说的,何必要这个函数呢?
TryStrToInt就行了啊...
liem 2004-12-25
  • 打赏
  • 举报
回复
function HasNum(ss:string):bool;
var i:integer;
{增加result的说明}
begin
for i := 1 To Length(ss) do
begin
{if (ss[i]>='0') or (ss[i]<='9') then 中的or改成and}
if (ss[i]>='0') and (ss[i]<='9') then
result:=True
else
begin
{break;这一句不用}
result:=FALSE;
end;
end;
HasNum:=result;{通过函数名返回值}
end;

caobin518 2004-12-25
  • 打赏
  • 举报
回复
同意“ turbozzh(涡轮超人) ”的说法。。。。
turbozzh 2004-12-25
  • 打赏
  • 举报
回复
对呀,你不觉得本身就没有必要使用这样一个函数吗?
herman~~ 2004-12-24
  • 打赏
  • 举报
回复
同意楼上的方法
turbozzh 2004-12-24
  • 打赏
  • 举报
回复
这个函数何必那么复杂呢?
function HasNum(ss:string):bool;
var
i:integer;
Begin
Try
i:=StrToInt(ss);
Result:=true;
Except
Result:=false;
End;
End;
zzlingaaa 2004-12-24
  • 打赏
  • 举报
回复
你的那个函数只能返回True,无论SS的内容是什么
(ss[i]>='0') or (ss[i]<='9')这个是永远成立的...

begin
break;
result:=FALSE;//这句是永远不会执行的...
end;
Kevin_Lmx 2004-12-24
  • 打赏
  • 举报
回复
楼主的代码风格有问题
micker 2004-12-24
  • 打赏
  • 举报
回复
删除你的break吧或者放到result:=FALSE;
后面,否则是可能没有返回值的啊!
zzlingaaa 2004-12-24
  • 打赏
  • 举报
回复
function HasNum(ss:string):bool;
var i:integer;
begin
result:=True;
for i := 1 To Length(ss) do
begin
if (ss[i]<'0') or (ss[i]>'9') then
begin
result:=FALSE;
break;//or Exit 也可以不加
end;
end;
end;
VeryOldMan 2004-12-24
  • 打赏
  • 举报
回复
Return value of function‘HasNum’might be undefind

这仅仅是个警告信息,说明你的代码存在一条没有决定返回值的执行路径。

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧