社区
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;
...全文
255
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
打赏
举报
回复
都贴出来看一看
驱动冲突伴随 DWG 图纸文字问号怎么办?下载冲突解决合集.zip
彻底解决CAD图纸文字变问号、文字变乱码,以及其他所有字体缺失带来的烦恼
【对架无人机进行规范控制和点对点运动的模拟】可变桨叶四旋翼控制的优化推力分配:翻转动作的比较研究(Matlab代码实现)
内容概要:本文围绕可变桨叶四旋翼无人机的规范控制与点对点运动模拟展开,重点研究优化推力分配策略在翻转动作中的应用与性能比较。通过Matlab代码实现,构建了四旋翼动力学模型,并设计了多种控制算法以实现精确的姿态调整与轨迹跟踪。研究对比了不同推力分配方案在
执行
高机动性翻转动作时的稳定性、能耗效率与响应速度,旨在提升无人机在复杂飞行任务中的动态性能与控制精度。该仿真研究为无人机飞控系统的设计与优化提供了理论依据和技术支持。; 适合人群:具备一定自动控制理论基础和Matlab编程能力,从事无人机控制、飞行器动力学或机器人系统研究的科研人员及研究生。; 使用场景及目标:① 实现四旋翼无人机在三维空间中的精确点对点运动控制;② 对比分析不同推力分配策略在
执行
翻转等高难度动作时的控制效果与能耗表现,优化飞行性能;③ 为无人机自主飞行、特技飞行及复杂环境下的机动控制提供算法验证平台。; 阅读建议:此资源以Matlab仿真为核心,建议读者结合相关控制理论知识,深入理解代码实现细节,重点关注动力学建模、控制律设计与推力分配模块。在学习过程中,应动手调试参数,复现文中翻转动作的仿真结果,并尝试拓展至其他复杂飞行任务,以加深对无人机控制机理的理解。
易语言源码易语言access数据库操作
易语言源码易语言access数据库操作
C++编程while
循环
结构测试题解析:程序输出与
循环
控制逻辑训练
内容概要:本文档是一份关于C++语言中while
循环
的专项测试卷,包含20道单项选择题和10道判断题,题目来源于GESP和CSP-J等权威编程等级考试真题。内容涵盖while
循环
的基本语法、
执行
逻辑、
条件
判断、
循环
控制、常见死
循环
原因及与其他
循环
结构的区别,重点考察
循环
条件
的真假判断、
循环
体
执行
次数、变量变化过程以及相关逻辑推理能力。附带完整答案解析,有助于巩固C++
循环
基础知识。; 适合人群:准备参加GESP或CSP-J等青少年编程等级考试的学生,具备初步C++编程基础的学习者(如中小学阶段初学者);适用于学习流程控制结构中的
循环
知识点。; 使用场景及目标:①用于检测对while
循环
掌握程度,查漏补缺;②辅助教师进行教学测评或学生自我练习;③帮助理解
循环
执行
顺序、
条件
表达式含义及避免死
循环
等核心概念; 阅读建议:建议在完成每道题目后对照答案认真分析错误原因,结合代码调试加深理解;尤其注意
条件
赋值与比较的区别(如k=0)、逻辑非运算的应用及
循环
变量更新机制。
卓海海洋生态平台.pptx
卓海海洋生态平台.pptx
Delphi
5,943
社区成员
262,943
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章