使用While Do循环重写Pascal for DO循环 [英] Rewrite Pascal for do loop using while do loop

查看:0
本文介绍了使用While Do循环重写Pascal for DO循环的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请在PASCAL编程中如何将下面的FOR...DO循环重写为WHILE...DO循环

下面是以下代码

Program Matmuli(input,output);

:

:

FOR i:=1 TO m DO

  FOR j:=1 TO p DO

     BEGIN
    
        C[i,j]:= 0.0;
        FOR k:=1 TO n DO
          C[i,j]:= C[i,j] + A[i,k] * B[k,j];

     END;

推荐答案

for循环根据while循环、协商ISO 7185 "Standard Pascal"、引用:

定义良好

除了这些要求施加的限制外,for语句

for v := e1 to e2 do body

应相当于

begin
  temp1 := e1;
  temp2 := e2;
  if temp1 <= temp2 then
    begin
      v := temp1;
      body;
      while v <> temp2 do
        begin
          v := succ(v);
          body
        end
    end
end

[…]

其中temp1temp2表示程序不包含的辅助变量,并且具有变量v[…]所具有的类型

这段扩展的代码的重要之处在于,正如linuxfan says Reinstate Monica已经指出的那样,Pascal中的循环的限制只计算一次。此外,仅当确实至少有一次迭代时,才会为控制变量赋值。

但是,通常按照Andreas Rejbrand的建议转换for循环就足够了,尽管在技术上不是

这篇关于使用While Do循环重写Pascal for DO循环的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆