• 全部
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API
  • 问答

for循环执行条件有错?

aspiregao 2001-04-16 11:35:00

我在程序中以如下方式使用for语句,num是变量,由函数得到,当num是小于等于0时,即num-1<0,for循环内的语句应该不能被执行,但实际却执行了。谁能告诉我,这是怎么回事?

//示例代码
num:=fun();
for i := 0 to num-1 do
begin
......
end;
...全文
193 点赞 收藏 16
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Kingron 2001-04-18
数据类型不一样!不要想当然!以为0-1就是-1!!!!!!
回复
Kingron 2001-04-18
//faint
Dword(-1)=4294967295。
回复
jiangpeng 2001-04-17
if num>0 then
begin
for i:=0 to num-1 do
begin
.
.
.
end;
end
else ..........;
看一看行不行
回复
武稀松 2001-04-17
用F7跟踪一下
不会的话可在循环中加showmessage(inttostr(i));看看i的值到底是不是小于0
回复
aspiregao 2001-04-17
谢谢大家的参与,我发现问题出在我的num类型定义上,请看一下程序:
该程序中,showmessage将被执行。若将num,i的声明改为integer型,则showmessage不会被执行。
虽然找到了问题,但我不明白,word表示无符号数,integet表示有符号数,但是无论如何,num-1总是小于0的,for语句怎么会执行呢?

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
num : word;
implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
i:word;
begin
num := 0;
for i:=0 to num-1 do
begin
showmessage('Hello!');
end;

end;


end.


回复
WuHeHai 2001-04-17
是不是我的眼花了???????
回复
Kingron 2001-04-17
不可能!!!!!!
一定是你的num计算有误。
回复
Whynothefirst 2001-04-17
num:=fun();
if num-1<0 then
for i := 0 to num-1 do
begin
......
end;
回复
sxc 2001-04-17
怎么可能?
回复
newyj 2001-04-17
不可能!!!!!!
一定是你的num计算有误。

执行FOR
以前先SHOWMESSAGE(INTTOSTR(NUM))看看会不会
出现你所说的问题。
回复
delphibook 2001-04-17
是啊,你再调试调试!
回复
lichp 2001-04-17
如果我没有记错的话,在C或者是BASIC语中的FOR循环是允许初值比末值大的。其中有一个Step如果为正的话,则初值应小于末值;为负,则初值应大于末值。Delphi中未曾用到这样的循环,估计也是能行的,不信你可以在begin和end之间加入一输入显示i值的函数,i就是从大到小了。
见识粗浅,我也不知道是不是这样的。
回复
coldljy 2001-04-17
不可能!!!!!!
一定是你的num计算有误。
回复
wangyue_lf 2001-04-16
呀~错了,是
if num>0 then ……
回复
wangyue_lf 2001-04-16
num:=fun();
if num-1<0 then
for i := 0 to num-1 do
begin
......
end;
回复
djhdu 2001-04-16
都贴出来看一看
回复
相关推荐
发帖
Delphi
创建于2007-08-02

4892

社区成员

Delphi 开发及应用
申请成为版主
帖子事件
创建了帖子
2001-04-16 11:35
社区公告
暂无公告