永发信息网

代码为什么会造成程序死了?delphi

答案:3  悬赏:30  手机版
解决时间 2021-07-18 02:39
  • 提问者网友:雨不眠的下
  • 2021-07-17 16:23

while not data_m.ADO_km.Eof do
begin
for i := 0 to listbox2.Items.Count - 1 do
begin
if data_m.ADO_km.FieldValues['kmmc'] <> listbox2.Items[i] then
begin
listbox1.Items.Add(data_m.ADO_km.FieldValues['kmmc']);
data_m.ADO_km.Next;
end;
end;
end;

上面的程序运行后单击button按钮正常显示

而下面的代码欲行后就程序就死了

为什么呢?没感觉不一样啊


while not data_m.ADO_km.Eof do
begin
flag := false;
for i := 0 to listbox2.Items.Count - 1 do
begin
if data_m.ADO_km.FieldValues['kmmc'] = listbox2.Items[i] then
begin
flag := true;
break;
end;
end;
if not flag then
begin
listbox1.Items.Add(data_m.ADO_km.FieldValues['kmmc']);
data_m.ADO_km.Next;
end;
end; }

最佳答案
  • 五星知识达人网友:杯酒困英雄
  • 2021-07-17 17:15

明显是 data_m.ADO_km.Next; 执行不到


所以 跳不出循环

全部回答
  • 1楼网友:零点过十分
  • 2021-07-17 19:13
下面造成了死循环,循环条件永远满足
  • 2楼网友:荒野風
  • 2021-07-17 18:24

break 跳出的是for 循环

下面 应改为

if not flag then begin listbox1.Items.Add(data_m.ADO_km.FieldValues['kmmc']); end;

data_m.ADO_km.Next;

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯