Delphi和VC++的for循环

本文通过示例对比了Delphi与VC++中for循环的行为差异:Delphi的循环次数预先确定,而VC++的循环次数依赖于循环内的操作。这种差异导致两者在相同代码下表现出不同的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Delphi中的for循环:
var
  s: TStringList;
  i: Integer;
begin
  s :
=  TStringList.Create;
  s.Add(
' a ' );
  s.Add(
' b ' );
  
for  i : =   0  to s.Count   do
    s.Add(
' c ' );
end;


VC++中的for循环:
#include  < vector >
using   namespace  std;
vector
< string >  vt;
vt.push_back(
" a " );
vt.push_back(
" b " );
for ( int  i  =   0 ;i  <  vt.size(); ++ i)
{
  vt.push_back(
"c");
}


类似的代码,但是执行的效果却不同。
Delphi下的代码不会死循环,循环两次,正常退出。
而VC++下的代码会死循环,不能正常退出。
原因是Delphi在处理for循环之前,循环次数已经确定,
而VC++中的循环次数是在循环之后确定。

  点击这里给我发消息
Delphi 跳出循环的几种方法Delphi 跳出循环的几种方法 我常用的几种方法 希望大家看看 那个是大家常用的而且比较不错的 以下是引用片段: Delphi中break,exit,abort跳出循环的比较 exit: 退出函数体 abort: 遇到异常,安静处理,就是不显示不提示 break: 退出当前循环体,包括for ,while, repeat等循环体 continue: 结束循环内的本次处理,继续从循环体的开始位置继续执行 Exit 是跳出当前代码块,也就是当前函数,跳出后是要继续向下执行的(如果有后续代码)。 Abort 是从 EAbort 过来的,可以激发 exception,其实质就是 Abort = RaiseException(),是一个不出现对话框的异常。所以 Abort 的行为异常是一样的,其代码执行顺序也是follow异常的流程。 例如: try (1) //执行了 abort; (2) //不执行 exception (3) //执行了 end; 用 Abort 能够执行 exception 里边的代码,但是如果用 Exit,就直接离开,不管 exception。 delphi中表示跳出的有break,exit,abort。 【break】 离开循环 只能放在循环中 【exit】 跳出本模块(过程函数),放在循环中是跳出循环在所在的模块。 【abort】 中止程序的运行,产生不报错的异常信息。跳出祖先模块。【exit】的区别是 procedure p1; begin p2; p3; end; procedure p2; begin abort; //exit; end; procedure p3; begin //showmessage().. end; 如果用 Abort,则执行不到 P3,如果用 Exit 就能够执行到 P3。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fanhongbin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值