社区
Delphi
帖子详情
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;
...全文
247
16
打赏
收藏
for循环执行条件有错?
我在程序中以如下方式使用for语句,num是变量,由函数得到,当num是小于等于0时,即num-1<0,for循环内的语句应该不能被执行,但实际却执行了。谁能告诉我,这是怎么回事? //示例代码 num:=fun(); for i := 0 to num-1 do begin ...... end;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Kingron
2001-04-18
打赏
举报
回复
数据类型不一样!不要想当然!以为0-1就是-1!!!!!!
Kingron
2001-04-18
打赏
举报
回复
//faint
Dword(-1)=4294967295。
jp311
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计算有误。
sxc
2001-04-17
打赏
举报
回复
怎么可能?
Whynothefirst
2001-04-17
打赏
举报
回复
num:=fun();
if num-1<0 then
for i := 0 to num-1 do
begin
......
end;
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
打赏
举报
回复
都贴出来看一看
C语言
条件
循环
语句
执行
步骤,C语言中for语句的
执行
过程是什么?
C语言中for语句的
执行
过程是:1、会先判断
条件
表达式是否成立,如果
条件
成立则
执行
中间
循环
体,
执行
完中间
循环
体后接着
执行
末尾
循环
体 ;2、在
执行
完末尾
循环
体后对
条件
表达式再次判断,若
条件
还成立,则继续重复中间
循环
体,当
条件
不成立时则跳出。C语言中for语句的
执行
过程是:for语句的一般形式为:for(单次表达式;
条件
表达式;末尾
循环
体){中间
循环
体;}。for
循环
执行
时,会先判断
条件
表达式是否成立...
for
循环
执行
顺序详解(避坑)
今天刷题碰到的一个坑,就是没有注意到for
循环
的每次判断
条件
导致的**,也就是for
循环
的第二句**,每次
循环
都会
执行
该判断
条件
。 for
循环
的表达式一般如下: for(表达式1;表达式2;表达式3){ 表达式4; }
执行
的顺序为: 第一次
循环
首先
执行
表达式1(一般为初始化语句,只
执行
一次),再
执行
表达式2(
条件
判断语句),判断表达式1是否符合表达式2的
条件
,如果符合,则
执行
表达式4,......
js中for
循环
是如何进行的?
Javascript中的for是如何实现
循环
的? 一、语法结构 单for
循环
for(初始化变量;
条件
表达式; 操作表达式){
循环
体 }; 双重for
循环
(也叫
循环
嵌套) for(外层初始化变量; 外层的表达式; 外层的操作表达式){ for(里层的初始化变量; 里层的
条件
表达式; 里层的操作表达式){
循环
体 } }; 二、
循环
机制 1. 初始化变量:就是var声明的变量,通常作为计数使...
FOR
循环
执行
过程:
初始化变量,初始化操作在整个 for
循环
只会
执行
一次。
执行
条件
表达式,如果为true,则
执行
循环
体语句,否则退出
循环
,
循环
结束。
执行
操作表达式,此时第一轮结束。 第二轮开始,直接去
执行
条件
表达式(不再初始化变量),如果为 true ,则去
执行
循环
体语句,否则退出
循环
。 继续
执行
操作表达式,第二轮结束。 后续跟第二轮一致,直至
条件
表达式为假,结束整个 for
循环
。 ...
for
循环
执行
顺序
for
循环
的表达式一般如下:for(表达式1;表达式2;表达式3){ 表达式4;}
执行
的顺序为: 1)第一次
循环
,即初始化
循环
。首先
执行
表达式1(一般为初始化语句),再
执行
表达式2(一般为
条件
判断语句),判断表达式1是否符合表达式2的
条件
,如果符合,则
执行
表达式4,否则,停止
执行
,最后
执行
表达式3. 2)下次的
循环
:首先
执行
表达式2,判断表达式3是否符合表达式2的
条件
;如果符合,继续
执行
表达式
Delphi
5,938
社区成员
262,945
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章