Delphi自定义函数错误
FunctionEword(T:string):boolean;varindex:integer;s:string;beginS:=Trim(T);index:=1;wh...
Function Eword(T:string):boolean;
var
index:integer;
s:string;
begin
S:=Trim(T);
index:=1;
while index<=length(s) do
begin
if not zhimu(s[index]) then
result:=false
else
result:=true;
inc(index);
end;
end;
zhimu函数是判断输入的是不是英文字母,是为真,否则假
Eword函数是是判断一个字符是否是字母组合,
运行是提示:[Warning] ParserFM.pas(60): Return value of function 'Eword' might be undefined
看不懂,帮帮忙 展开
var
index:integer;
s:string;
begin
S:=Trim(T);
index:=1;
while index<=length(s) do
begin
if not zhimu(s[index]) then
result:=false
else
result:=true;
inc(index);
end;
end;
zhimu函数是判断输入的是不是英文字母,是为真,否则假
Eword函数是是判断一个字符是否是字母组合,
运行是提示:[Warning] ParserFM.pas(60): Return value of function 'Eword' might be undefined
看不懂,帮帮忙 展开
5个回答
展开全部
提示这个是因为你的Eword没有初始化返回值,因为编译器发现你这个函数有可能没能持行到Result:=xxx这句.因此,你在Begin下先赋一个返回值,比如Result:=False;这样就不会有这个提示了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
[Warning]表明它只是一个警告,内容说的是“Eword函数可能没有定义返回值”,即你的函数体最后一行不是“Eword:=”或“Result:=”,可能会导致它无返回值,从而造成错误,而实际上你并不一定有错,所以不是[Error]而是[Warning]~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把返回放在第一行,不要写成这样
if not zhimu(s[index]) then
result:=false
else
result:=true;
因为这样会增加CPU的开销
你应该这样改:
Function Eword(T:string):boolean;
var
index:integer;
s:string;
begin
result:=false;
S:=Trim(T);
index:=1;
while index<=length(s) do
begin
if zhimu(s[index]) then begin
result:=true;
break;
end;
inc(index);
end;
end;
if not zhimu(s[index]) then
result:=false
else
result:=true;
因为这样会增加CPU的开销
你应该这样改:
Function Eword(T:string):boolean;
var
index:integer;
s:string;
begin
result:=false;
S:=Trim(T);
index:=1;
while index<=length(s) do
begin
if zhimu(s[index]) then begin
result:=true;
break;
end;
inc(index);
end;
end;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这只是一个警告~~~并不是错误~~~原因是Result赋值写在了if分语句里。~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询