跳转到内容

编程基础/结构化编程

来自维基教科书,开放的书籍,开放的世界

结构化编程是一种编程范式,旨在通过广泛使用结构化控制流构造来提高计算机程序的清晰度、质量和开发时间

这与使用简单的测试和跳转(如“go to”语句)形成对比,后者会导致“意大利面条代码”;代码可能难以理解和维护。[1]

编程最重要的概念之一是控制程序的能力,以便执行不同的代码行。允许我们控制执行流程的机制称为控制结构。流程图是一种记录(图表)程序将执行的流程(或路径)的方法。控制结构主要分为三类

顺序 - 顺序代码是最熟悉、最易读的。代码按 a 到 z 的顺序读取。想想读一本书。你按顺序阅读章节。

<script>
    var a = 1;
    var b = 2;
    var c = 3;
    a = b;
    c = a;
<script>

选择 - 在两个或多个条件之间进行选择。通过提出一个问题来决定选择。答案决定了要执行的路径。

<script>
    var a = 1;
    var b = 2;
    if (a         {
        var text = I know a < b, its a bit obvious;
        document.getElementById(demo).innerHTML =text;
        }
</script>

迭代 - 也称为重复,它允许一些代码 s) 被执行或重复多次。代码可能根本没有执行,执行固定次数或无限期执行,直到满足某个条件为止。迭代也称为循环,因为代码显示流程循环回到执行任务。例如,while 循环用于根据提出的条件重复执行。

<script>
    var a = 0;
    var b = 10;
    result = a < b;
    text =  ;
    while(a < b)
        {
        text += result + <br>;
        a++;
        }
    document.getElementById(demo).innerHTML = text;
</script>

分支 - 一种不受控制的结构,允许执行流程跳转到程序的不同部分。此类别很少在模块化结构化编程中使用。例如,if/else 语句取决于条件。

<script>
var x="";
var time=new Date().getHours();
if (time<20)
  {x="Have Good day";
  }
else
  {x="Have Good evening";
  }
document.write(x);
</script>

所有高级编程语言都有控制结构。所有语言都有前三种类别的控制结构(顺序、选择和迭代)。大多数语言都有 if then else 结构(属于选择类别)和 while 结构(属于迭代类别)。在这两种基本结构之后,通常会有语言变体。

结构化编程的概念始于 1960 年代后期,Edsger Dijkstra 的一篇论文。他提出了一种“减少 goto”的规划编程逻辑方法,消除了对控制结构分支类别的需要。这个话题被讨论了大约 20 年。但最终 - “到 20 世纪末,几乎所有计算机科学家都相信学习和应用结构化编程的概念是有益的。”[2]

关键词

[编辑 | 编辑源代码]
分支
一种不受控制的结构,允许执行流程跳转到程序的不同部分。
控制结构
允许我们控制程序执行流程的机制。
迭代
一种允许某些代码行被执行多次的控制结构。
选择
一种控制结构,程序在其中在两个或多个选项之间进行选择。
顺序
一种控制结构,程序按列出的顺序执行其中的项目。
意大利面条代码
一个用于表达对无结构且难以维护的源代码的反对的短语。[3]
结构化编程
一种规划程序的方法,避免了控制结构的分支类别。

参考文献

[编辑 | 编辑源代码]
华夏公益教科书