delphi循环语句和条件语句的使用问题!

netxk 2008-04-27 02:23:32
var a,b,c,d,e,f:string;

begin
a:=edit1.text;
b:=edit2.text;
c:=edit3.text;
d:=edit4.text;
e:=edit5.text;
f:=edit6.text;

if (a='')or(b='')or(c='')or (d='')or (e='')or (f='') then showmessage('信息不完整') //如果a,b,c,d,e,f有一个为空,则显示提醒

else

table1.Open;//数据表table打开
table1.Insert;//数据表处于插入状态
edit1.SetFocus;
tablename.value:=edit1.text; 将edit1下的内容添加到数据表name单元下
tablepassword.Value:=edit2.Text;
tablepop3.Value:=edit3.Text;
tablepop3port.Value:=edit4.Text;
talbesmtp.Value:=edit5.Text;
tablesmtpport.Value:=edit6.Text;
tableEmail.Value:=edit7.Text;
end;


现在用上面的代码,可以执行过去,也可以实现显示“信息不完整”提醒窗口,但是
if (a='')or(b='')or(c='')or (d='')or (e='')or (f='') then showmessage('信息不完整') else
这句代码的意思是:如果a,b,c,d,e,f有一个为空,则显示提醒,它的else的意思就可以理解为如果a,b,c,d,e,f中有一个有内容不为空,就执行else下面的代码!

我现在想让它作出判断后,判断出有一个内容为话的显示提醒信息后就不再往下执行了,如果a,b,c,d,e,f所有的内容都不为空的话,则执行else下的内容,这段代码应怎么写呢?



而且
var a,b,c,d,e,f:string;
begin
a:=edit1.text;
b:=edit2.text;
c:=edit3.text;
d:=edit4.text;
e:=edit5.text;
f:=edit6.text;
if (a='')or(b='')or(c='')or (d='')or (e='')or (f='') then showmessage('信息不完整')
这段代码可不可以用for...do...之类的循环语句+条件语句来表达啊,这样子写的话,代码太多了,太麻烦了!

谢谢各位大哥大姐!
...全文
913 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
woniugongzuoshi 2008-04-27
  • 打赏
  • 举报
回复
现在用上面的代码,可以执行过去,也可以实现显示“信息不完整”提醒窗口,但是
if (a='')or(b='')or(c='')or (d='')or (e='')or (f='') then showmessage('信息不完整') else
这句代码的意思是:如果a,b,c,d,e,f有一个为空,则显示提醒,它的else的意思就可以理解为如果a,b,c,d,e,f中有一个有内容不为空,就执行else下面的代码!



楼主,你这个说法好象不对哦,他的else就是 not((a='')or(b='')or(c=''))等价于(a<>'')and(b<>'')and(c<>'')离散数学或者数据结构中应该做过类似的题目的,翻译成文字就是没有任何一个变量的值为'',符合你的需求,你真的需要补一补基础知识才行。
阿三 2008-04-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hcqi2004 的回复:]
if (a='')or(b='')or(c='')or (d='')or (e='')or (f='') then
begin
showmessage('信息不完整') ;
exit;
end
else
begin
//---------------------你的操作
end

//这样不是就可以了
[/Quote]
hcqi2004 2008-04-27
  • 打赏
  • 举报
回复
if (a='')or(b='')or(c='')or (d='')or (e='')or (f='') then
begin
showmessage('信息不完整') ;
exit;
end
else
begin
//---------------------你的操作
end

//这样不是就可以了


woniugongzuoshi 2008-04-27
  • 打赏
  • 举报
回复
一边上班一边写的回贴,所以搞得比较慢,要是早看到IT民工的回贴,我就不回了,IT民工阐述问题比我精简得多,楼主你看他的吧。
woniugongzuoshi 2008-04-27
  • 打赏
  • 举报
回复
编程的问题,都是条条大路通罗马,最好是清晰简练,我发表一下自己的看法

第一个问题:
如果不想改变习惯顺序:
if not (a<>'')and(b<>'')...
then 提示
else 执行;
如果看不惯not,可以写成:
if (a<>'')and(b<>'')...
then 执行
else 提示;



第二个问题:
如果想要循环,首先你的abcdef要放到数组中,就是定义一个字符串数组来代替abcdef:
判断的循环:
var
i:integer;
flag:boolean;
str:array[1..6] of string;
begin
……
flag:=true;
for i:=1 to 6 do
begin
if str[i]=''
then flag:=false;
end;
完了之后用flag的值来判断执行条件
……
end;
赋值的循环:
要用到一个叫组件查询函数的东西:findcomponent.
var
i:integer;
str:array[1..6] of string;
begin
for i:=1 to 6 do
begin
str[i]:=tedit(findcomponent('edit'+inttostr(i))).text;
end;
end;

这些问题,除了findcomponent不好查之外,其他的都是自己应该能想到的,我想如果不是你太懒,就是你的语言基础太差,需要补基础知识才行。
我也是才开始学,欢迎各位老鸟批评指正。
紫色动力 2008-04-27
  • 打赏
  • 举报
回复
请楼上的解释下一楼的代码,看不懂。
for i :=1 to 6 do
if Tedit(FindComponent('edit'+inttostr(i))).text='' then begin
Result:=false;
BREAK;
end;
谢谢!
GDTOPONE 2008-04-27
  • 打赏
  • 举报
回复
修正一下,上面操错了:

{--使用--}
if not lookedit then
showmessage('信息不完整')
else
{---------------------你的操作}
end;

GDTOPONE 2008-04-27
  • 打赏
  • 举报
回复

{相关函数}
function lookedit:Boolean;
var
i:integer;
begin
Result:=true;
for i :=1 to 6 do
if Tedit(FindComponent('edit'+inttostr(i))).text='' then begin
Result:=false;
BREAK;
end;
end;



{--使用--}
if lookedit then
showmessage('信息不完整')
else
{---------------------你的操作}
end;

16,748

社区成员

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

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