Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
For loop 如何在for循环中增加计数器?(帕斯卡)_For Loop_Increment_Pascal - Fatal编程技术网

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

For loop 如何在for循环中增加计数器?(帕斯卡),for-loop,increment,pascal,For Loop,Increment,Pascal,我有一个大问题,因为这段代码是在devpascal中正确编译的,而不是在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计数器)。事实上,我认为这更像是Dev Pascal

我有一个大问题,因为这段代码是在devpascal中正确编译的,而不是在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计数器)。

事实上,我认为这更像是Dev Pascal让你逍遥法外,而FP却没有。编译器通常不允许您在循环中修改
for
变量的原因是,它可以破坏编译器生成的代码,以确定何时达到
for
的上限值


添加一个局部变量
j
,将其指定为与
k
相同的起始值,在
for
循环中增加2,并使用
j
作为数组索引器,而不是
k

Delphi不允许修改循环变量,TP允许修改。FPC以其自身的模式遵循Delphi,因为这是明智的做法,因为MartynA列出了阻碍优化的原因


然而,FPC确实允许它在Turbo-Pascal模式下对旧的代码基进行编译,添加{$mode-tp}或使用-Mtp进行编译“内部递增2”-对不起,我不明白。你能解释一下吗?
Inc(j,2)
j:=j+2
谢谢!但最后我用重复循环来做这个<代码>k:=1;重复写(a[k]:4:2',a[k+1]:4:2',a[k+2]:4:2);公司(k,3),;直到k>=n关于k:=0到n第3-1部分的
如何开始写(a[k*3+1]:4:2',,a[k*3+2],…
?如果每次迭代都必须访问3个元素,我会这样做。TP没有,好吧。至少最新版本(TP7、TP6、TPW1.5等)没有。