gpt4 book ai didi

for-loop - 为什么 Pascal 禁止修改 for block 内的计数器?

转载 作者:行者123 更新时间:2023-12-04 08:57:22 25 4
gpt4 key购买 nike

是因为 Pascal 是这样设计的,还是有任何权衡?

或者禁止或不禁止修改 for 块内的计数器的利弊是什么?恕我直言,修改 for 块内的计数器几乎没有用。

编辑 :
您能否提供一个我们需要修改 for 块内的计数器的示例?

在wallyk的答案和cartoonfox的答案之间进行选择,因为这两个答案都很好。Cartoonfox从语言方面分析问题,而wallyk从历史和现实世界方面分析问题。无论如何,感谢您的所有回答和我'我要特别感谢沃利克。

最佳答案

编程语言理论(和可计算性理论) WHILE 和 FOR 循环具有不同的理论属性 :

  • WHILE 循环可能永远不会终止 (表达式可能只是 TRUE)
  • 在开始执行之前,应该知道 FOR 循环要执行的有限次数。 你应该知道 FOR 循环总是终止。

  • C 中存在的 FOR 循环在技术上不算作 FOR 循环,因为在执行之前您不一定知道循环将迭代多少次。 (即您可以破解循环计数器以永远运行)

    您可以使用 WHILE 循环解决的问题类别比您使用 Pascal 中的严格 FOR 循环解决的问题更强大。

    Pascal 是这样设计的,因此学生可以使用两种不同的循环结构,它们具有不同的计算属性 . (如果您实现了 C 方式的 FOR,则 FOR 循环将只是 while 的替代语法...)

    在严格的理论术语中,您永远不需要在 for 循环中修改计数器。 如果你能摆脱它,你就可以有一个 WHILE 循环的替代语法。

    您可以在以下 CS 讲义中找到有关“while 循环可计算性”和“for 循环可计算性”的更多信息: http://www-compsci.swan.ac.uk/~csjvt/JVTTeaching/TPL.html

    顺便说一句,另一个这样的属性是循环变量在 for 循环之后未定义。这也使优化更容易

    关于for-loop - 为什么 Pascal 禁止修改 for block 内的计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2071872/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com