软件工程:结构化程序设计技术

📌目录



⚖️ 结构化程序设计技术:构建清晰代码的基石

结构化程序设计(Structured Programming)是一种程序设计方法学,它采用自顶向下、逐步求精的设计方法,使用顺序、选择、循环三种基本控制结构来编写程序。本文将详细介绍结构化程序设计的概念、原则、方法和技术要点。

🎯 一、结构化程序设计概述

(一)结构化程序设计的定义

结构化程序设计是一种程序设计方法学,它采用自顶向下、逐步求精的设计方法,使用顺序、选择、循环三种基本控制结构来编写程序。

概念理解
#mermaid-svg-frfiKWXGDS4WeNgf{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-frfiKWXGDS4WeNgf .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-frfiKWXGDS4WeNgf .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-frfiKWXGDS4WeNgf .error-icon{fill:#552222;}#mermaid-svg-frfiKWXGDS4WeNgf .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-frfiKWXGDS4WeNgf .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-frfiKWXGDS4WeNgf .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-frfiKWXGDS4WeNgf .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-frfiKWXGDS4WeNgf .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-frfiKWXGDS4WeNgf .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-frfiKWXGDS4WeNgf .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-frfiKWXGDS4WeNgf .marker{fill:#333333;stroke:#333333;}#mermaid-svg-frfiKWXGDS4WeNgf .marker.cross{stroke:#333333;}#mermaid-svg-frfiKWXGDS4WeNgf svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-frfiKWXGDS4WeNgf p{margin:0;}#mermaid-svg-frfiKWXGDS4WeNgf .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-frfiKWXGDS4WeNgf .cluster-label text{fill:#333;}#mermaid-svg-frfiKWXGDS4WeNgf .cluster-label span{color:#333;}#mermaid-svg-frfiKWXGDS4WeNgf .cluster-label span p{background-color:transparent;}#mermaid-svg-frfiKWXGDS4WeNgf .label text,#mermaid-svg-frfiKWXGDS4WeNgf span{fill:#333;color:#333;}#mermaid-svg-frfiKWXGDS4WeNgf .node rect,#mermaid-svg-frfiKWXGDS4WeNgf .node circle,#mermaid-svg-frfiKWXGDS4WeNgf .node ellipse,#mermaid-svg-frfiKWXGDS4WeNgf .node polygon,#mermaid-svg-frfiKWXGDS4WeNgf .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-frfiKWXGDS4WeNgf .rough-node .label text,#mermaid-svg-frfiKWXGDS4WeNgf .node .label text,#mermaid-svg-frfiKWXGDS4WeNgf .image-shape .label,#mermaid-svg-frfiKWXGDS4WeNgf .icon-shape .label{text-anchor:middle;}#mermaid-svg-frfiKWXGDS4WeNgf .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-frfiKWXGDS4WeNgf .rough-node .label,#mermaid-svg-frfiKWXGDS4WeNgf .node .label,#mermaid-svg-frfiKWXGDS4WeNgf .image-shape .label,#mermaid-svg-frfiKWXGDS4WeNgf .icon-shape .label{text-align:center;}#mermaid-svg-frfiKWXGDS4WeNgf .node.clickable{cursor:pointer;}#mermaid-svg-frfiKWXGDS4WeNgf .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-frfiKWXGDS4WeNgf .arrowheadPath{fill:#333333;}#mermaid-svg-frfiKWXGDS4WeNgf .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-frfiKWXGDS4WeNgf .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-frfiKWXGDS4WeNgf .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-frfiKWXGDS4WeNgf .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-frfiKWXGDS4WeNgf .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-frfiKWXGDS4WeNgf .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-frfiKWXGDS4WeNgf .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-frfiKWXGDS4WeNgf .cluster text{fill:#333;}#mermaid-svg-frfiKWXGDS4WeNgf .cluster span{color:#333;}#mermaid-svg-frfiKWXGDS4WeNgf div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-frfiKWXGDS4WeNgf .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-frfiKWXGDS4WeNgf rect.text{fill:none;stroke-width:0;}#mermaid-svg-frfiKWXGDS4WeNgf .icon-shape,#mermaid-svg-frfiKWXGDS4WeNgf .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-frfiKWXGDS4WeNgf .icon-shape p,#mermaid-svg-frfiKWXGDS4WeNgf .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-frfiKWXGDS4WeNgf .icon-shape .label rect,#mermaid-svg-frfiKWXGDS4WeNgf .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-frfiKWXGDS4WeNgf .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-frfiKWXGDS4WeNgf .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-frfiKWXGDS4WeNgf :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 结构化程序设计
自顶向下
逐步求精
基本控制结构
从顶层开始设计
逐步细化实现
顺序、选择、循环

(二)结构化程序设计的提出

历史背景

时间 事件 人物
1965年 提出goto语句有害论 Dijkstra
1966年 证明基本控制结构 Bohm和Jacopini
1970年代 结构化程序设计普及 Wirth等

(三)结构化程序设计的特点

设计特点

特点 说明
自顶向下 从顶层开始设计
逐步求精 逐步细化实现
模块化 程序分解为模块
结构化 使用基本控制结构

📦 二、基本控制结构

(一)三种基本控制结构

基本控制结构

结构化程序设计使用三种基本控制结构。
#mermaid-svg-fVlC7KLVn8E55GHW{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-fVlC7KLVn8E55GHW .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-fVlC7KLVn8E55GHW .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-fVlC7KLVn8E55GHW .error-icon{fill:#552222;}#mermaid-svg-fVlC7KLVn8E55GHW .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-fVlC7KLVn8E55GHW .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-fVlC7KLVn8E55GHW .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-fVlC7KLVn8E55GHW .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-fVlC7KLVn8E55GHW .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-fVlC7KLVn8E55GHW .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-fVlC7KLVn8E55GHW .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-fVlC7KLVn8E55GHW .marker{fill:#333333;stroke:#333333;}#mermaid-svg-fVlC7KLVn8E55GHW .marker.cross{stroke:#333333;}#mermaid-svg-fVlC7KLVn8E55GHW svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-fVlC7KLVn8E55GHW p{margin:0;}#mermaid-svg-fVlC7KLVn8E55GHW .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-fVlC7KLVn8E55GHW .cluster-label text{fill:#333;}#mermaid-svg-fVlC7KLVn8E55GHW .cluster-label span{color:#333;}#mermaid-svg-fVlC7KLVn8E55GHW .cluster-label span p{background-color:transparent;}#mermaid-svg-fVlC7KLVn8E55GHW .label text,#mermaid-svg-fVlC7KLVn8E55GHW span{fill:#333;color:#333;}#mermaid-svg-fVlC7KLVn8E55GHW .node rect,#mermaid-svg-fVlC7KLVn8E55GHW .node circle,#mermaid-svg-fVlC7KLVn8E55GHW .node ellipse,#mermaid-svg-fVlC7KLVn8E55GHW .node polygon,#mermaid-svg-fVlC7KLVn8E55GHW .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-fVlC7KLVn8E55GHW .rough-node .label text,#mermaid-svg-fVlC7KLVn8E55GHW .node .label text,#mermaid-svg-fVlC7KLVn8E55GHW .image-shape .label,#mermaid-svg-fVlC7KLVn8E55GHW .icon-shape .label{text-anchor:middle;}#mermaid-svg-fVlC7KLVn8E55GHW .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-fVlC7KLVn8E55GHW .rough-node .label,#mermaid-svg-fVlC7KLVn8E55GHW .node .label,#mermaid-svg-fVlC7KLVn8E55GHW .image-shape .label,#mermaid-svg-fVlC7KLVn8E55GHW .icon-shape .label{text-align:center;}#mermaid-svg-fVlC7KLVn8E55GHW .node.clickable{cursor:pointer;}#mermaid-svg-fVlC7KLVn8E55GHW .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-fVlC7KLVn8E55GHW .arrowheadPath{fill:#333333;}#mermaid-svg-fVlC7KLVn8E55GHW .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-fVlC7KLVn8E55GHW .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-fVlC7KLVn8E55GHW .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-fVlC7KLVn8E55GHW .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-fVlC7KLVn8E55GHW .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-fVlC7KLVn8E55GHW .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-fVlC7KLVn8E55GHW .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-fVlC7KLVn8E55GHW .cluster text{fill:#333;}#mermaid-svg-fVlC7KLVn8E55GHW .cluster span{color:#333;}#mermaid-svg-fVlC7KLVn8E55GHW div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-fVlC7KLVn8E55GHW .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-fVlC7KLVn8E55GHW rect.text{fill:none;stroke-width:0;}#mermaid-svg-fVlC7KLVn8E55GHW .icon-shape,#mermaid-svg-fVlC7KLVn8E55GHW .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-fVlC7KLVn8E55GHW .icon-shape p,#mermaid-svg-fVlC7KLVn8E55GHW .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-fVlC7KLVn8E55GHW .icon-shape .label rect,#mermaid-svg-fVlC7KLVn8E55GHW .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-fVlC7KLVn8E55GHW .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-fVlC7KLVn8E55GHW .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-fVlC7KLVn8E55GHW :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 基本控制结构
顺序结构
选择结构
循环结构
按顺序执行
条件选择
重复执行

(二)顺序结构

顺序结构是最基本的控制结构,按顺序执行。

顺序结构特点

特点 说明
顺序执行 按顺序依次执行
单入口单出口 一个入口,一个出口
无分支 没有分支选择

顺序结构示例
#mermaid-svg-JOVHebCEswCXnm89{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-JOVHebCEswCXnm89 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-JOVHebCEswCXnm89 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-JOVHebCEswCXnm89 .error-icon{fill:#552222;}#mermaid-svg-JOVHebCEswCXnm89 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-JOVHebCEswCXnm89 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-JOVHebCEswCXnm89 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-JOVHebCEswCXnm89 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-JOVHebCEswCXnm89 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-JOVHebCEswCXnm89 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-JOVHebCEswCXnm89 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-JOVHebCEswCXnm89 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-JOVHebCEswCXnm89 .marker.cross{stroke:#333333;}#mermaid-svg-JOVHebCEswCXnm89 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-JOVHebCEswCXnm89 p{margin:0;}#mermaid-svg-JOVHebCEswCXnm89 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-JOVHebCEswCXnm89 .cluster-label text{fill:#333;}#mermaid-svg-JOVHebCEswCXnm89 .cluster-label span{color:#333;}#mermaid-svg-JOVHebCEswCXnm89 .cluster-label span p{background-color:transparent;}#mermaid-svg-JOVHebCEswCXnm89 .label text,#mermaid-svg-JOVHebCEswCXnm89 span{fill:#333;color:#333;}#mermaid-svg-JOVHebCEswCXnm89 .node rect,#mermaid-svg-JOVHebCEswCXnm89 .node circle,#mermaid-svg-JOVHebCEswCXnm89 .node ellipse,#mermaid-svg-JOVHebCEswCXnm89 .node polygon,#mermaid-svg-JOVHebCEswCXnm89 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-JOVHebCEswCXnm89 .rough-node .label text,#mermaid-svg-JOVHebCEswCXnm89 .node .label text,#mermaid-svg-JOVHebCEswCXnm89 .image-shape .label,#mermaid-svg-JOVHebCEswCXnm89 .icon-shape .label{text-anchor:middle;}#mermaid-svg-JOVHebCEswCXnm89 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-JOVHebCEswCXnm89 .rough-node .label,#mermaid-svg-JOVHebCEswCXnm89 .node .label,#mermaid-svg-JOVHebCEswCXnm89 .image-shape .label,#mermaid-svg-JOVHebCEswCXnm89 .icon-shape .label{text-align:center;}#mermaid-svg-JOVHebCEswCXnm89 .node.clickable{cursor:pointer;}#mermaid-svg-JOVHebCEswCXnm89 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-JOVHebCEswCXnm89 .arrowheadPath{fill:#333333;}#mermaid-svg-JOVHebCEswCXnm89 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-JOVHebCEswCXnm89 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-JOVHebCEswCXnm89 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-JOVHebCEswCXnm89 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-JOVHebCEswCXnm89 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-JOVHebCEswCXnm89 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-JOVHebCEswCXnm89 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-JOVHebCEswCXnm89 .cluster text{fill:#333;}#mermaid-svg-JOVHebCEswCXnm89 .cluster span{color:#333;}#mermaid-svg-JOVHebCEswCXnm89 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-JOVHebCEswCXnm89 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-JOVHebCEswCXnm89 rect.text{fill:none;stroke-width:0;}#mermaid-svg-JOVHebCEswCXnm89 .icon-shape,#mermaid-svg-JOVHebCEswCXnm89 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-JOVHebCEswCXnm89 .icon-shape p,#mermaid-svg-JOVHebCEswCXnm89 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-JOVHebCEswCXnm89 .icon-shape .label rect,#mermaid-svg-JOVHebCEswCXnm89 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-JOVHebCEswCXnm89 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-JOVHebCEswCXnm89 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-JOVHebCEswCXnm89 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 开始
语句1
语句2
语句3
结束

代码示例

python 复制代码
# 顺序结构示例
a = 10        # 语句1
b = 20        # 语句2
c = a + b     # 语句3
print(c)      # 语句4

(三)选择结构

选择结构根据条件选择执行路径。

选择结构类型

类型 说明 示例
if结构 单分支选择 if (条件) 语句
if-else结构 双分支选择 if (条件) 语句1 else 语句2
switch结构 多分支选择 switch (变量) case ...

if-else结构示例
#mermaid-svg-Ox1muIjYG7R11MKv{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-Ox1muIjYG7R11MKv .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-Ox1muIjYG7R11MKv .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-Ox1muIjYG7R11MKv .error-icon{fill:#552222;}#mermaid-svg-Ox1muIjYG7R11MKv .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Ox1muIjYG7R11MKv .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-Ox1muIjYG7R11MKv .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Ox1muIjYG7R11MKv .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Ox1muIjYG7R11MKv .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-Ox1muIjYG7R11MKv .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Ox1muIjYG7R11MKv .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Ox1muIjYG7R11MKv .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Ox1muIjYG7R11MKv .marker.cross{stroke:#333333;}#mermaid-svg-Ox1muIjYG7R11MKv svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Ox1muIjYG7R11MKv p{margin:0;}#mermaid-svg-Ox1muIjYG7R11MKv .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-Ox1muIjYG7R11MKv .cluster-label text{fill:#333;}#mermaid-svg-Ox1muIjYG7R11MKv .cluster-label span{color:#333;}#mermaid-svg-Ox1muIjYG7R11MKv .cluster-label span p{background-color:transparent;}#mermaid-svg-Ox1muIjYG7R11MKv .label text,#mermaid-svg-Ox1muIjYG7R11MKv span{fill:#333;color:#333;}#mermaid-svg-Ox1muIjYG7R11MKv .node rect,#mermaid-svg-Ox1muIjYG7R11MKv .node circle,#mermaid-svg-Ox1muIjYG7R11MKv .node ellipse,#mermaid-svg-Ox1muIjYG7R11MKv .node polygon,#mermaid-svg-Ox1muIjYG7R11MKv .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Ox1muIjYG7R11MKv .rough-node .label text,#mermaid-svg-Ox1muIjYG7R11MKv .node .label text,#mermaid-svg-Ox1muIjYG7R11MKv .image-shape .label,#mermaid-svg-Ox1muIjYG7R11MKv .icon-shape .label{text-anchor:middle;}#mermaid-svg-Ox1muIjYG7R11MKv .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-Ox1muIjYG7R11MKv .rough-node .label,#mermaid-svg-Ox1muIjYG7R11MKv .node .label,#mermaid-svg-Ox1muIjYG7R11MKv .image-shape .label,#mermaid-svg-Ox1muIjYG7R11MKv .icon-shape .label{text-align:center;}#mermaid-svg-Ox1muIjYG7R11MKv .node.clickable{cursor:pointer;}#mermaid-svg-Ox1muIjYG7R11MKv .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-Ox1muIjYG7R11MKv .arrowheadPath{fill:#333333;}#mermaid-svg-Ox1muIjYG7R11MKv .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-Ox1muIjYG7R11MKv .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-Ox1muIjYG7R11MKv .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-Ox1muIjYG7R11MKv .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-Ox1muIjYG7R11MKv .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-Ox1muIjYG7R11MKv .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-Ox1muIjYG7R11MKv .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-Ox1muIjYG7R11MKv .cluster text{fill:#333;}#mermaid-svg-Ox1muIjYG7R11MKv .cluster span{color:#333;}#mermaid-svg-Ox1muIjYG7R11MKv div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-Ox1muIjYG7R11MKv .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-Ox1muIjYG7R11MKv rect.text{fill:none;stroke-width:0;}#mermaid-svg-Ox1muIjYG7R11MKv .icon-shape,#mermaid-svg-Ox1muIjYG7R11MKv .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-Ox1muIjYG7R11MKv .icon-shape p,#mermaid-svg-Ox1muIjYG7R11MKv .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-Ox1muIjYG7R11MKv .icon-shape .label rect,#mermaid-svg-Ox1muIjYG7R11MKv .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-Ox1muIjYG7R11MKv .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-Ox1muIjYG7R11MKv .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-Ox1muIjYG7R11MKv :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 是

开始
条件?
语句1
语句2
结束

代码示例

python 复制代码
# 选择结构示例
score = 85

if score >= 90:
    grade = 'A'
elif score >= 80:
    grade = 'B'
elif score >= 70:
    grade = 'C'
else:
    grade = 'D'

print(f"成绩等级: {grade}")

(四)循环结构

循环结构重复执行某段代码。

循环结构类型

类型 说明 特点
while循环 先判断后执行 可能不执行
do-while循环 先执行后判断 至少执行一次
for循环 计数循环 适合已知次数

while循环示例
#mermaid-svg-NUbBw4MByI4YnewH{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-NUbBw4MByI4YnewH .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-NUbBw4MByI4YnewH .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-NUbBw4MByI4YnewH .error-icon{fill:#552222;}#mermaid-svg-NUbBw4MByI4YnewH .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-NUbBw4MByI4YnewH .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-NUbBw4MByI4YnewH .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-NUbBw4MByI4YnewH .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-NUbBw4MByI4YnewH .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-NUbBw4MByI4YnewH .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-NUbBw4MByI4YnewH .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-NUbBw4MByI4YnewH .marker{fill:#333333;stroke:#333333;}#mermaid-svg-NUbBw4MByI4YnewH .marker.cross{stroke:#333333;}#mermaid-svg-NUbBw4MByI4YnewH svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-NUbBw4MByI4YnewH p{margin:0;}#mermaid-svg-NUbBw4MByI4YnewH .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-NUbBw4MByI4YnewH .cluster-label text{fill:#333;}#mermaid-svg-NUbBw4MByI4YnewH .cluster-label span{color:#333;}#mermaid-svg-NUbBw4MByI4YnewH .cluster-label span p{background-color:transparent;}#mermaid-svg-NUbBw4MByI4YnewH .label text,#mermaid-svg-NUbBw4MByI4YnewH span{fill:#333;color:#333;}#mermaid-svg-NUbBw4MByI4YnewH .node rect,#mermaid-svg-NUbBw4MByI4YnewH .node circle,#mermaid-svg-NUbBw4MByI4YnewH .node ellipse,#mermaid-svg-NUbBw4MByI4YnewH .node polygon,#mermaid-svg-NUbBw4MByI4YnewH .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-NUbBw4MByI4YnewH .rough-node .label text,#mermaid-svg-NUbBw4MByI4YnewH .node .label text,#mermaid-svg-NUbBw4MByI4YnewH .image-shape .label,#mermaid-svg-NUbBw4MByI4YnewH .icon-shape .label{text-anchor:middle;}#mermaid-svg-NUbBw4MByI4YnewH .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-NUbBw4MByI4YnewH .rough-node .label,#mermaid-svg-NUbBw4MByI4YnewH .node .label,#mermaid-svg-NUbBw4MByI4YnewH .image-shape .label,#mermaid-svg-NUbBw4MByI4YnewH .icon-shape .label{text-align:center;}#mermaid-svg-NUbBw4MByI4YnewH .node.clickable{cursor:pointer;}#mermaid-svg-NUbBw4MByI4YnewH .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-NUbBw4MByI4YnewH .arrowheadPath{fill:#333333;}#mermaid-svg-NUbBw4MByI4YnewH .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-NUbBw4MByI4YnewH .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-NUbBw4MByI4YnewH .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-NUbBw4MByI4YnewH .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-NUbBw4MByI4YnewH .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-NUbBw4MByI4YnewH .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-NUbBw4MByI4YnewH .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-NUbBw4MByI4YnewH .cluster text{fill:#333;}#mermaid-svg-NUbBw4MByI4YnewH .cluster span{color:#333;}#mermaid-svg-NUbBw4MByI4YnewH div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-NUbBw4MByI4YnewH .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-NUbBw4MByI4YnewH rect.text{fill:none;stroke-width:0;}#mermaid-svg-NUbBw4MByI4YnewH .icon-shape,#mermaid-svg-NUbBw4MByI4YnewH .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-NUbBw4MByI4YnewH .icon-shape p,#mermaid-svg-NUbBw4MByI4YnewH .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-NUbBw4MByI4YnewH .icon-shape .label rect,#mermaid-svg-NUbBw4MByI4YnewH .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-NUbBw4MByI4YnewH .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-NUbBw4MByI4YnewH .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-NUbBw4MByI4YnewH :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 是

开始
条件?
循环体
结束

代码示例

python 复制代码
# while循环示例
i = 1
sum = 0
while i <= 100:
    sum = sum + i
    i = i + 1
print(f"1到100的和: {sum}")

# for循环示例
sum = 0
for i in range(1, 101):
    sum = sum + i
print(f"1到100的和: {sum}")

🌐 三、结构化程序设计的原则

(一)自顶向下原则

自顶向下原则

从顶层开始设计,逐步细化。
#mermaid-svg-iUqAK5KHopuRhPCv{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-iUqAK5KHopuRhPCv .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-iUqAK5KHopuRhPCv .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-iUqAK5KHopuRhPCv .error-icon{fill:#552222;}#mermaid-svg-iUqAK5KHopuRhPCv .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-iUqAK5KHopuRhPCv .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-iUqAK5KHopuRhPCv .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-iUqAK5KHopuRhPCv .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-iUqAK5KHopuRhPCv .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-iUqAK5KHopuRhPCv .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-iUqAK5KHopuRhPCv .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-iUqAK5KHopuRhPCv .marker{fill:#333333;stroke:#333333;}#mermaid-svg-iUqAK5KHopuRhPCv .marker.cross{stroke:#333333;}#mermaid-svg-iUqAK5KHopuRhPCv svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-iUqAK5KHopuRhPCv p{margin:0;}#mermaid-svg-iUqAK5KHopuRhPCv .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-iUqAK5KHopuRhPCv .cluster-label text{fill:#333;}#mermaid-svg-iUqAK5KHopuRhPCv .cluster-label span{color:#333;}#mermaid-svg-iUqAK5KHopuRhPCv .cluster-label span p{background-color:transparent;}#mermaid-svg-iUqAK5KHopuRhPCv .label text,#mermaid-svg-iUqAK5KHopuRhPCv span{fill:#333;color:#333;}#mermaid-svg-iUqAK5KHopuRhPCv .node rect,#mermaid-svg-iUqAK5KHopuRhPCv .node circle,#mermaid-svg-iUqAK5KHopuRhPCv .node ellipse,#mermaid-svg-iUqAK5KHopuRhPCv .node polygon,#mermaid-svg-iUqAK5KHopuRhPCv .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-iUqAK5KHopuRhPCv .rough-node .label text,#mermaid-svg-iUqAK5KHopuRhPCv .node .label text,#mermaid-svg-iUqAK5KHopuRhPCv .image-shape .label,#mermaid-svg-iUqAK5KHopuRhPCv .icon-shape .label{text-anchor:middle;}#mermaid-svg-iUqAK5KHopuRhPCv .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-iUqAK5KHopuRhPCv .rough-node .label,#mermaid-svg-iUqAK5KHopuRhPCv .node .label,#mermaid-svg-iUqAK5KHopuRhPCv .image-shape .label,#mermaid-svg-iUqAK5KHopuRhPCv .icon-shape .label{text-align:center;}#mermaid-svg-iUqAK5KHopuRhPCv .node.clickable{cursor:pointer;}#mermaid-svg-iUqAK5KHopuRhPCv .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-iUqAK5KHopuRhPCv .arrowheadPath{fill:#333333;}#mermaid-svg-iUqAK5KHopuRhPCv .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-iUqAK5KHopuRhPCv .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-iUqAK5KHopuRhPCv .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-iUqAK5KHopuRhPCv .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-iUqAK5KHopuRhPCv .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-iUqAK5KHopuRhPCv .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-iUqAK5KHopuRhPCv .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-iUqAK5KHopuRhPCv .cluster text{fill:#333;}#mermaid-svg-iUqAK5KHopuRhPCv .cluster span{color:#333;}#mermaid-svg-iUqAK5KHopuRhPCv div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-iUqAK5KHopuRhPCv .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-iUqAK5KHopuRhPCv rect.text{fill:none;stroke-width:0;}#mermaid-svg-iUqAK5KHopuRhPCv .icon-shape,#mermaid-svg-iUqAK5KHopuRhPCv .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-iUqAK5KHopuRhPCv .icon-shape p,#mermaid-svg-iUqAK5KHopuRhPCv .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-iUqAK5KHopuRhPCv .icon-shape .label rect,#mermaid-svg-iUqAK5KHopuRhPCv .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-iUqAK5KHopuRhPCv .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-iUqAK5KHopuRhPCv .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-iUqAK5KHopuRhPCv :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 顶层模块
第二层模块
第二层模块
第三层模块
第三层模块
第三层模块

(二)逐步求精原则

逐步求精原则

逐步细化,从抽象到具体。
#mermaid-svg-0ED40HC1Y3d5AGD4{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-0ED40HC1Y3d5AGD4 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-0ED40HC1Y3d5AGD4 .error-icon{fill:#552222;}#mermaid-svg-0ED40HC1Y3d5AGD4 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-0ED40HC1Y3d5AGD4 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-0ED40HC1Y3d5AGD4 .marker.cross{stroke:#333333;}#mermaid-svg-0ED40HC1Y3d5AGD4 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-0ED40HC1Y3d5AGD4 p{margin:0;}#mermaid-svg-0ED40HC1Y3d5AGD4 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-0ED40HC1Y3d5AGD4 .cluster-label text{fill:#333;}#mermaid-svg-0ED40HC1Y3d5AGD4 .cluster-label span{color:#333;}#mermaid-svg-0ED40HC1Y3d5AGD4 .cluster-label span p{background-color:transparent;}#mermaid-svg-0ED40HC1Y3d5AGD4 .label text,#mermaid-svg-0ED40HC1Y3d5AGD4 span{fill:#333;color:#333;}#mermaid-svg-0ED40HC1Y3d5AGD4 .node rect,#mermaid-svg-0ED40HC1Y3d5AGD4 .node circle,#mermaid-svg-0ED40HC1Y3d5AGD4 .node ellipse,#mermaid-svg-0ED40HC1Y3d5AGD4 .node polygon,#mermaid-svg-0ED40HC1Y3d5AGD4 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-0ED40HC1Y3d5AGD4 .rough-node .label text,#mermaid-svg-0ED40HC1Y3d5AGD4 .node .label text,#mermaid-svg-0ED40HC1Y3d5AGD4 .image-shape .label,#mermaid-svg-0ED40HC1Y3d5AGD4 .icon-shape .label{text-anchor:middle;}#mermaid-svg-0ED40HC1Y3d5AGD4 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-0ED40HC1Y3d5AGD4 .rough-node .label,#mermaid-svg-0ED40HC1Y3d5AGD4 .node .label,#mermaid-svg-0ED40HC1Y3d5AGD4 .image-shape .label,#mermaid-svg-0ED40HC1Y3d5AGD4 .icon-shape .label{text-align:center;}#mermaid-svg-0ED40HC1Y3d5AGD4 .node.clickable{cursor:pointer;}#mermaid-svg-0ED40HC1Y3d5AGD4 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-0ED40HC1Y3d5AGD4 .arrowheadPath{fill:#333333;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-0ED40HC1Y3d5AGD4 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-0ED40HC1Y3d5AGD4 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-0ED40HC1Y3d5AGD4 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-0ED40HC1Y3d5AGD4 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-0ED40HC1Y3d5AGD4 .cluster text{fill:#333;}#mermaid-svg-0ED40HC1Y3d5AGD4 .cluster span{color:#333;}#mermaid-svg-0ED40HC1Y3d5AGD4 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-0ED40HC1Y3d5AGD4 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-0ED40HC1Y3d5AGD4 rect.text{fill:none;stroke-width:0;}#mermaid-svg-0ED40HC1Y3d5AGD4 .icon-shape,#mermaid-svg-0ED40HC1Y3d5AGD4 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-0ED40HC1Y3d5AGD4 .icon-shape p,#mermaid-svg-0ED40HC1Y3d5AGD4 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-0ED40HC1Y3d5AGD4 .icon-shape .label rect,#mermaid-svg-0ED40HC1Y3d5AGD4 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-0ED40HC1Y3d5AGD4 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-0ED40HC1Y3d5AGD4 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-0ED40HC1Y3d5AGD4 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 抽象描述
第一层细化
第二层细化
第三层细化
具体实现

(三)模块化原则

模块化原则

将程序分解为独立模块。

要求 说明
功能独立 模块功能独立
接口简单 模块接口简单
高内聚 模块内部紧密
低耦合 模块间依赖少

(四)限制使用goto语句

限制goto原则

goto语句使程序结构混乱,应限制使用。

goto的问题

问题 说明
结构混乱 破坏程序结构
难以理解 程序难以理解
难以维护 程序难以维护
难以测试 程序难以测试

📊 四、结构化程序设计的方法

(一)设计方法

设计方法
#mermaid-svg-TX8BamVLGl8TLWeI{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-TX8BamVLGl8TLWeI .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-TX8BamVLGl8TLWeI .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-TX8BamVLGl8TLWeI .error-icon{fill:#552222;}#mermaid-svg-TX8BamVLGl8TLWeI .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-TX8BamVLGl8TLWeI .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-TX8BamVLGl8TLWeI .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-TX8BamVLGl8TLWeI .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-TX8BamVLGl8TLWeI .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-TX8BamVLGl8TLWeI .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-TX8BamVLGl8TLWeI .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-TX8BamVLGl8TLWeI .marker{fill:#333333;stroke:#333333;}#mermaid-svg-TX8BamVLGl8TLWeI .marker.cross{stroke:#333333;}#mermaid-svg-TX8BamVLGl8TLWeI svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-TX8BamVLGl8TLWeI p{margin:0;}#mermaid-svg-TX8BamVLGl8TLWeI .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-TX8BamVLGl8TLWeI .cluster-label text{fill:#333;}#mermaid-svg-TX8BamVLGl8TLWeI .cluster-label span{color:#333;}#mermaid-svg-TX8BamVLGl8TLWeI .cluster-label span p{background-color:transparent;}#mermaid-svg-TX8BamVLGl8TLWeI .label text,#mermaid-svg-TX8BamVLGl8TLWeI span{fill:#333;color:#333;}#mermaid-svg-TX8BamVLGl8TLWeI .node rect,#mermaid-svg-TX8BamVLGl8TLWeI .node circle,#mermaid-svg-TX8BamVLGl8TLWeI .node ellipse,#mermaid-svg-TX8BamVLGl8TLWeI .node polygon,#mermaid-svg-TX8BamVLGl8TLWeI .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-TX8BamVLGl8TLWeI .rough-node .label text,#mermaid-svg-TX8BamVLGl8TLWeI .node .label text,#mermaid-svg-TX8BamVLGl8TLWeI .image-shape .label,#mermaid-svg-TX8BamVLGl8TLWeI .icon-shape .label{text-anchor:middle;}#mermaid-svg-TX8BamVLGl8TLWeI .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-TX8BamVLGl8TLWeI .rough-node .label,#mermaid-svg-TX8BamVLGl8TLWeI .node .label,#mermaid-svg-TX8BamVLGl8TLWeI .image-shape .label,#mermaid-svg-TX8BamVLGl8TLWeI .icon-shape .label{text-align:center;}#mermaid-svg-TX8BamVLGl8TLWeI .node.clickable{cursor:pointer;}#mermaid-svg-TX8BamVLGl8TLWeI .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-TX8BamVLGl8TLWeI .arrowheadPath{fill:#333333;}#mermaid-svg-TX8BamVLGl8TLWeI .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-TX8BamVLGl8TLWeI .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-TX8BamVLGl8TLWeI .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-TX8BamVLGl8TLWeI .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-TX8BamVLGl8TLWeI .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-TX8BamVLGl8TLWeI .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-TX8BamVLGl8TLWeI .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-TX8BamVLGl8TLWeI .cluster text{fill:#333;}#mermaid-svg-TX8BamVLGl8TLWeI .cluster span{color:#333;}#mermaid-svg-TX8BamVLGl8TLWeI div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-TX8BamVLGl8TLWeI .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-TX8BamVLGl8TLWeI rect.text{fill:none;stroke-width:0;}#mermaid-svg-TX8BamVLGl8TLWeI .icon-shape,#mermaid-svg-TX8BamVLGl8TLWeI .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-TX8BamVLGl8TLWeI .icon-shape p,#mermaid-svg-TX8BamVLGl8TLWeI .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-TX8BamVLGl8TLWeI .icon-shape .label rect,#mermaid-svg-TX8BamVLGl8TLWeI .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-TX8BamVLGl8TLWeI .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-TX8BamVLGl8TLWeI .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-TX8BamVLGl8TLWeI :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 结构化设计方法
自顶向下
逐步求精
模块化
从顶层开始
逐步细化
分解为模块

(二)设计步骤

设计步骤

步骤 任务 产出
1 分析问题 问题分析
2 设计顶层 顶层结构
3 逐层细化 细化结构
4 编写代码 程序代码
5 测试调试 测试结果

(三)设计实例

实例:计算学生成绩

问题分析

  • 输入:学生成绩列表
  • 处理:计算平均分、最高分、最低分
  • 输出:统计结果

自顶向下设计

复制代码
主程序
├── 输入成绩
├── 计算统计
│   ├── 计算平均分
│   ├── 计算最高分
│   └── 计算最低分
└── 输出结果

逐步求精

python 复制代码
# 第一层:主程序框架
def main():
    scores = input_scores()
    stats = calculate_statistics(scores)
    output_results(stats)

# 第二层:细化各模块
def input_scores():
    # 输入成绩
    pass

def calculate_statistics(scores):
    # 计算统计
    pass

def output_results(stats):
    # 输出结果
    pass

# 第三层:具体实现
def input_scores():
    scores = []
    n = int(input("请输入学生人数: "))
    for i in range(n):
        score = float(input(f"请输入第{i+1}个学生的成绩: "))
        scores.append(score)
    return scores

def calculate_statistics(scores):
    avg = sum(scores) / len(scores)
    max_score = max(scores)
    min_score = min(scores)
    return {'average': avg, 'max': max_score, 'min': min_score}

def output_results(stats):
    print(f"平均分: {stats['average']:.2f}")
    print(f"最高分: {stats['max']:.2f}")
    print(f"最低分: {stats['min']:.2f}")

if __name__ == "__main__":
    main()

💡 五、结构化程序设计的工具

(一)流程图

流程图是描述程序结构的图形工具。

流程图符号

符号 含义 说明
椭圆 开始/结束 流程的开始和结束
矩形 处理 处理步骤
菱形 判断 条件判断
平行四边形 输入/输出 数据输入输出
箭头 流向 流程方向

流程图示例
#mermaid-svg-GUJfJMk3yaUpz7AI{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-GUJfJMk3yaUpz7AI .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-GUJfJMk3yaUpz7AI .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-GUJfJMk3yaUpz7AI .error-icon{fill:#552222;}#mermaid-svg-GUJfJMk3yaUpz7AI .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-GUJfJMk3yaUpz7AI .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-GUJfJMk3yaUpz7AI .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-GUJfJMk3yaUpz7AI .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-GUJfJMk3yaUpz7AI .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-GUJfJMk3yaUpz7AI .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-GUJfJMk3yaUpz7AI .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-GUJfJMk3yaUpz7AI .marker{fill:#333333;stroke:#333333;}#mermaid-svg-GUJfJMk3yaUpz7AI .marker.cross{stroke:#333333;}#mermaid-svg-GUJfJMk3yaUpz7AI svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-GUJfJMk3yaUpz7AI p{margin:0;}#mermaid-svg-GUJfJMk3yaUpz7AI .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-GUJfJMk3yaUpz7AI .cluster-label text{fill:#333;}#mermaid-svg-GUJfJMk3yaUpz7AI .cluster-label span{color:#333;}#mermaid-svg-GUJfJMk3yaUpz7AI .cluster-label span p{background-color:transparent;}#mermaid-svg-GUJfJMk3yaUpz7AI .label text,#mermaid-svg-GUJfJMk3yaUpz7AI span{fill:#333;color:#333;}#mermaid-svg-GUJfJMk3yaUpz7AI .node rect,#mermaid-svg-GUJfJMk3yaUpz7AI .node circle,#mermaid-svg-GUJfJMk3yaUpz7AI .node ellipse,#mermaid-svg-GUJfJMk3yaUpz7AI .node polygon,#mermaid-svg-GUJfJMk3yaUpz7AI .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-GUJfJMk3yaUpz7AI .rough-node .label text,#mermaid-svg-GUJfJMk3yaUpz7AI .node .label text,#mermaid-svg-GUJfJMk3yaUpz7AI .image-shape .label,#mermaid-svg-GUJfJMk3yaUpz7AI .icon-shape .label{text-anchor:middle;}#mermaid-svg-GUJfJMk3yaUpz7AI .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-GUJfJMk3yaUpz7AI .rough-node .label,#mermaid-svg-GUJfJMk3yaUpz7AI .node .label,#mermaid-svg-GUJfJMk3yaUpz7AI .image-shape .label,#mermaid-svg-GUJfJMk3yaUpz7AI .icon-shape .label{text-align:center;}#mermaid-svg-GUJfJMk3yaUpz7AI .node.clickable{cursor:pointer;}#mermaid-svg-GUJfJMk3yaUpz7AI .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-GUJfJMk3yaUpz7AI .arrowheadPath{fill:#333333;}#mermaid-svg-GUJfJMk3yaUpz7AI .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-GUJfJMk3yaUpz7AI .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-GUJfJMk3yaUpz7AI .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-GUJfJMk3yaUpz7AI .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-GUJfJMk3yaUpz7AI .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-GUJfJMk3yaUpz7AI .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-GUJfJMk3yaUpz7AI .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-GUJfJMk3yaUpz7AI .cluster text{fill:#333;}#mermaid-svg-GUJfJMk3yaUpz7AI .cluster span{color:#333;}#mermaid-svg-GUJfJMk3yaUpz7AI div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-GUJfJMk3yaUpz7AI .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-GUJfJMk3yaUpz7AI rect.text{fill:none;stroke-width:0;}#mermaid-svg-GUJfJMk3yaUpz7AI .icon-shape,#mermaid-svg-GUJfJMk3yaUpz7AI .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-GUJfJMk3yaUpz7AI .icon-shape p,#mermaid-svg-GUJfJMk3yaUpz7AI .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-GUJfJMk3yaUpz7AI .icon-shape .label rect,#mermaid-svg-GUJfJMk3yaUpz7AI .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-GUJfJMk3yaUpz7AI .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-GUJfJMk3yaUpz7AI .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-GUJfJMk3yaUpz7AI :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 是

开始
输入成绩
计算平均分
平均分>=60?
输出及格
输出不及格
结束

(二)盒图(N-S图)

盒图是结构化的流程图。

盒图特点

特点 说明
结构化 强制使用结构化控制结构
无箭头 不使用箭头表示流向
嵌套 通过嵌套表示层次

盒图示例

复制代码
┌─────────────────────────────────┐
│ 输入成绩                         │
├─────────────────────────────────┤
│ 计算平均分                       │
├─────────────────────────────────┤
│ if 平均分 >= 60                  │
│ ┌─────────────────────────────┐ │
│ │ 输出及格                     │ │
│ └─────────────────────────────┘ │
│ else                             │
│ ┌─────────────────────────────┐ │
│ │ 输出不及格                   │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────┘

(三)PAD图

PAD图(Problem Analysis Diagram)是问题分析图。

PAD图特点

特点 说明
树形结构 自左向右展开
层次清晰 层次关系清晰
易于转换 易于转换为代码

PAD图示例

复制代码
开始
├─ 输入成绩
├─ 计算平均分
├─ if 平均分 >= 60
│  └─ 输出及格
│  else
│     └─ 输出不及格
└─ 结束

(四)伪代码

伪代码是介于自然语言和编程语言之间的代码表示。

伪代码示例

复制代码
// 计算学生成绩统计
function calculateStatistics(scores):
    sum = 0
    max = scores[0]
    min = scores[0]
    
    for each score in scores:
        sum = sum + score
        if score > max:
            max = score
        if score < min:
            min = score
    
    average = sum / length(scores)
    
    return {average, max, min}

📋 六、结构化程序设计的优缺点

(一)优点

优点

优点 说明
结构清晰 程序结构清晰
易于理解 程序易于理解
易于维护 程序易于维护
易于测试 程序易于测试
提高效率 提高开发效率

(二)缺点

缺点

缺点 说明
效率问题 可能影响效率
局限性 不适合所有场景
复杂性 复杂系统难以应用

(三)适用场景

适用场景

场景 说明
数据处理 数据处理程序
业务逻辑 业务逻辑程序
教学程序 教学示例程序

📝 七、结构化程序设计实例

(一)实例背景

项目:学生成绩管理系统

功能

  • 输入学生成绩
  • 计算统计信息
  • 输出统计结果

(二)设计过程

自顶向下设计

复制代码
主程序
├── 初始化
├── 主循环
│   ├── 显示菜单
│   ├── 获取选择
│   └── 处理选择
│       ├── 输入成绩
│       ├── 计算统计
│       ├── 输出结果
│       └── 退出系统
└── 结束处理

(三)代码实现

完整代码

python 复制代码
def main():
    scores = []
    running = True
    
    while running:
        # 显示菜单
        print("\n=== 学生成绩管理系统 ===")
        print("1. 输入成绩")
        print("2. 计算统计")
        print("3. 输出结果")
        print("4. 退出系统")
        
        # 获取选择
        choice = input("请选择操作(1-4): ")
        
        # 处理选择
        if choice == '1':
            scores = input_scores()
        elif choice == '2':
            if len(scores) > 0:
                stats = calculate_statistics(scores)
                print("统计完成")
            else:
                print("请先输入成绩")
        elif choice == '3':
            if len(scores) > 0:
                output_results(stats)
            else:
                print("请先输入成绩")
        elif choice == '4':
            running = False
            print("感谢使用,再见!")
        else:
            print("无效选择,请重新输入")

def input_scores():
    scores = []
    n = int(input("请输入学生人数: "))
    for i in range(n):
        while True:
            try:
                score = float(input(f"请输入第{i+1}个学生的成绩: "))
                if 0 <= score <= 100:
                    scores.append(score)
                    break
                else:
                    print("成绩必须在0-100之间")
            except ValueError:
                print("请输入有效的数字")
    return scores

def calculate_statistics(scores):
    avg = sum(scores) / len(scores)
    max_score = max(scores)
    min_score = min(scores)
    return {'average': avg, 'max': max_score, 'min': min_score}

def output_results(stats):
    print("\n=== 统计结果 ===")
    print(f"平均分: {stats['average']:.2f}")
    print(f"最高分: {stats['max']:.2f}")
    print(f"最低分: {stats['min']:.2f}")

if __name__ == "__main__":
    main()

📝 总结

结构化程序设计是一种重要的程序设计方法学。

🎯 设计定义:采用自顶向下、逐步求精的设计方法,使用顺序、选择、循环三种基本控制结构来编写程序。

📦 基本控制结构

  • 顺序结构:按顺序依次执行
  • 选择结构:根据条件选择执行路径(if、if-else、switch)
  • 循环结构:重复执行某段代码(while、do-while、for)

🌐 设计原则

  • 自顶向下:从顶层开始设计
  • 逐步求精:逐步细化实现
  • 模块化:程序分解为模块
  • 限制goto:避免使用goto语句

💡 设计方法:自顶向下、逐步求精、模块化设计。

📋 设计工具:流程图、盒图(N-S图)、PAD图、伪代码。


核心启示:结构化程序设计是程序设计的基础,"万丈高楼平地起"。掌握结构化程序设计技术,能够编写出结构清晰、易于理解和维护的程序。在实际工作中,我们需要注意:第一,熟练掌握三种基本控制结构;第二,遵循自顶向下、逐步求精的设计方法;第三,合理使用设计工具(流程图、盒图、PAD图等);第四,限制使用goto语句,保持程序结构清晰;第五,重视代码的可读性和可维护性。虽然现代编程语言提供了更多的高级特性,但结构化程序设计的基本思想仍然具有重要价值。理解结构化程序设计,有助于我们更好地理解程序设计的本质,提高编程能力。记住:好的程序不仅是能运行的程序,更是结构清晰、易于理解和维护的程序。


相关推荐
Dr.kangder3 小时前
嵌入式面试总结(七)——哈佛架构与冯·诺依曼架构
面试·职场和发展·架构·嵌入式·软件工程
7177774 小时前
软件工程工业化实践:Gitee 智能化软件工厂全链路标准化交付体系解析
大数据·gitee·软件工程
吴free19 小时前
现代软件工程新范式:Harness、LOOP与Graph工程深度解析
大数据·软件工程
zhaoshuzhaoshu1 天前
软件需求工程:需求管理详解
软件工程
江畔柳前堤2 天前
HBM:大语言模型时代的「算力血液」——从内存墙到带宽革命的深度拆解
服务器·人工智能·windows·目标检测·语言模型·自然语言处理·软件工程
qiyongwork2 天前
LLM做需求追溯:从PRD到测试用例的全链路实践
项目管理·软件工程·需求管理
梁辰兴2 天前
软件工程:概要设计阶段的评审
软件工程·梁辰兴·评审内容·评审方法·概要设计阶段的评审·评审意义·评审流程
zhaoshuzhaoshu2 天前
软件需求工程:需求开发详解
软件工程
梁辰兴3 天前
软件工程:面向数据结构的设计方法
数据结构·软件工程·梁辰兴·面向数据结构的设计方法·jackson方法·warnier方法·方法比较