如何在for循环中增加计数器? (帕斯卡)

时间:2017-01-11 19:13:07

标签: for-loop increment pascal

我有一个很大的问题,因为这段代码在Dev-Pascal中正确编译,但在Lazarus中没有。

 for k:=1 to n do
     begin
          writeln(a[k]:4:2,'  ',a[k+1]:4:2,'  ',a[k+2]:4:2);
          inc(k,2);
     end;

我收到此消息

  

错误:非法分配给for循环变量" k"

我现在该怎么办?我需要在我的程序中使用这个解决方案(递增k计数器)。

2 个答案:

答案 0 :(得分:4)

实际上,我认为更多的是Dev-Pascal让你侥幸逃脱,而FP却没有。编译器通常不允许您修改循环中的Protobuf-Net变量的原因是它可以破坏编译器生成的代码,以确定何时达到上限for

添加局部变量for,为其分配与j相同的起始值,在k循环内将其递增2,并使用for作为数组索引器j

答案 1 :(得分:0)

Delphi不允许修改循环变量,TP确实如此。在它自己的模式中,FPC遵循Delphi,因为这是理智的事情,因为MartynA列出了令人沮丧的优化的原因。

然而 FPC允许它在Turbo Pascal模式下用于旧代码库,添加{$ mode tp}或使用-Mtp编译