社区
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;
...全文
232
16
打赏
收藏
for循环执行条件有错?
我在程序中以如下方式使用for语句,num是变量,由函数得到,当num是小于等于0时,即num-1<0,for循环内的语句应该不能被执行,但实际却执行了。谁能告诉我,这是怎么回事? //示例代码 num:=fun(); for i := 0 to num-1 do begin ...... end;
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
循环
语句
执行
流程
循环
语句可以在满足
循环
条件
的情况下,反复
执行
某一段代码,这段被重复
执行
的代码被称为
循环
体语句,当反复
执行
这个
循环
体时,需要在合适的时候把
循环
判断
条件
修改为false,从而结束
循环
,否则
循环
将一直
执行
下去,形成死
循环
。要点:今后遇到的需求中,如果带有求和二字,请立即联想到求和变量求和变量的定义位置,必须在
循环
外部,如果在
循环
内部则计算出的数据将是错误的。1. 获取所有的三位数,准备进行筛选,最小的三位数为100,最大的三位数为999,使用for
循环
获取。需求:在控制台输出1-5和5-1的数据。
Delphi
5,927
社区成员
262,932
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章