for循环里continue这句每次都执行不到,是不是系统设置问题?(20分)

  • 主题发起人 主题发起人 zgh777
  • 开始时间 开始时间
Z

zgh777

Unregistered / Unconfirmed
GUEST, unregistred user!
for i := 4 to 255 do
begin
if (i+1) < 97 then
if (i+1) mod 4 = 0 then
continue;
end;
continue这句每次都执行不到,是为什么啊,有没有人遇到过这个问题?
 
没有人知道吗?程序写不下去了,我很着急
 
这是编译器的逻辑分析能力强的地方
(崇拜一下Anders)
因为你这句Continue根本就没有任何意义,符合条件进行下一循环
不符合还是进行下一循环

你把Continue改成ShowMessage('Hello');试试,绝对能执行到
 
跟踪一下,你的语句写的CONTINUE,没有这一句和有这一句一样阿,因为没有执行其他的语句阿!
 
可以执行呀,
你可以改成下面语句:
for i := 4 to 255 do
begin
if (i+1) < 97 then
if (i+1) mod 4 = 0 then
begin
ShowMessage('sa');
continue;
end;
end;
我有试过有看到消息框,
你的目的是想做什么?
continue是结束本次循环,跳到下次循环,
Break是终止循环,
 
老大,可以执行的:

for i := 4 to 255 do
begin
if (i+1) < 97 then
if (i+1) mod 4 = 0 then
begin
showmessage(inttostr(i));
continue;
end;
end;
 
同志,不要问了,你的语句没问题:
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
for i := 4 to 255 do
begin
if (i+1) < 97 then
if (i+1) mod 4 = 0 then
begin
now;
continue;
end;
end;
end;
//////////////////////////////////
按照上面的代码,continue是不能设断点的,因此我加了now语句,设断点,可以跑到这段代码。没问题。

Good Luck!
 
我的程序实际是这样的:
for i := 4 to 255 do
begin
if (i+1) < 97 then
if (i+1) mod 4 = 0 then
continue;
//处理语句
end;
当(i+1) < 97 并且(i+1) mod 4 = 0我要跳过去的,接下来是有处理语句的
如果不象上面那么写那应该怎样写啊?
 
for i := 4 to 255 do
begin
if (i+1) < 97 then
if (i+1) mod 4 = 0 then
begin
ShowMessage('sa');//我不想要这句,没有用处的
continue;
end;
end;
 
for i := 4 to 255 do
begin
if (i+1) < 97 then
if (i+1) mod 4 = 0 then
begin
continue;
end;
//你要在这加待处理的语句?
end;
 
各位有没有试过不能设断点,但好象可以执行到啊
 
都说得这么明白了,你还不明白?
 
to 李翔鹏:是啊
 
看看是不是要在我加注释的地方加执行语句阿?
 
晕 越看越糊涂......你干吗不这么写:
for i := 4 to 255 do
begin
if not ((i<96) and (i mod 4 = 3) then begin
//处理语句
end;
end;
 
问题已解决,谢谢各位,散分!
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
D
回复
0
查看
867
DelphiTeacher的专栏
D
D
回复
0
查看
836
DelphiTeacher的专栏
D
后退
顶部