
让我们首先从什么是伪编码开始……
伪编码是程序员逐步编写出解决该编码问题的算法所遵循的路径的过程。 我能想到的最好的类比是走一条通往一个黑暗且未知,可能不安全的森林(需要解决的算法)内部的道路,并给自己留下很多可循的痕迹,以帮助您摆脱困境。 在您离开森林的路上(创建算法),您将不会总是始终将那些面包屑完全留在离开它们的位置,因为您可能会发现比通过森林更好,更安全,更干净的方式(平滑逻辑)您进去了。本质上仍然可以完成工作。 伪代码旨在指导程序员找到解决方案。 通常,如果您有能力编写有效的伪代码,则将拥有创建所需算法所需的所有工具。
我非常喜欢使用伪编码的时间,它可以帮助我了解我要解决的问题的多少。 它还减少了其他任何人的帮助。 在我成长为程序员的时代,伪代码使我克服了某些(最初是令人恐惧的)障碍,一旦我编写并设想了我的伪代码,这些障碍就变得更容易通过。
为了清楚起见,即使将伪代码都注释掉了,也不应将伪代码解释为注释。 注释旨在解释或理解已经编写的算法。 伪代码是一种人工的非正式语言,可帮助程序员开发算法。 伪代码适合您,并不意味着可以被任何计算机理解和运行。 纯粹是集思广益。
伪编码的规则相对简单。 取决于上一步的任何语句或步骤都应缩进。 这样可以在需要翻译时更清晰地阅读,更快地解释并更有效地利用您的伪代码。 在进行伪编码时,我坚持每行一个明确的声明。 不要声明变量,只需声明您要使用它们做什么。 将声明保存为算法的实际编码阶段。 如果计划使用循环,请指定哪个循环并在下面执行循环块时列出要执行的步骤。 它涉及了解您的输入和输出以及尽可能简单地映射输出。 根据您假定要编写的代码量,有时最好将几行较大的伪代码切开,以减轻伪代码与宏方案中不同用途或功能的混合。 然后将它们重新组合在一起,成为算法的工作部分。
我目前使用JavaScript进行编码,因此您看到的“ //”是注释掉一行代码的基本指示。 编译器将不会解释“ //”之后在这些行上写的任何内容,从而防止混乱。
以下是伪代码的简要示例,以帮助您正确地构建声音算法。
//将总计设置为零
//将计数器设置为1
//虽然计数器小于或等于十
//将计数器添加到总数(此循环块运行时运行的代码)。
(^^^缩进显示对上一步的依赖)
//增加计数器(此循环块运行时运行的代码)。
//将平均值设置为总数除以十(不缩进,不再依赖循环)。
//打印或返回平均值。
如您所见,伪代码非常易于编写,理解和希望,更重要的是,您可以将其转换为实际的工作代码。