程序的控制结构详解

2024-02-18 02:28
文章标签 程序 详解 控制结构

本文主要是介绍程序的控制结构详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

程序的控制结构

结构化程序设计方法的基础

在计算机刚出现的早期,它的价格昂贵、内存很小、速度慢。程序员为了在很小的内存中解决大量的科学计算问题,并为了节省昂贵的CPU机时费,不得不使用巧妙的手段和技术,手工编写各种高效的程度。其中显著的特点是程序中大量使用GOTO语句,使得程序结构混乱、可读性差、可维护性差、通用性更差。

结构化程序设计的概念最早在1966年由荷兰科学家E.W.Dijkstra提出:

  • 可以从高级语言中取消GOTO语句、程序的质量与程序中所包含的GOTO语句的数量成反比;
  • 任何程序都基于顺序、选择、循环3种基本的控制结构;
  • 程序具有模块化特征,每个程序模块具有唯一的入口和出口。

这些为结构化程序设计的技术奠定了理论基础

结构化编程主要包括以下两个方面:

  1. 在软件设计和实现过程中,提倡采用自顶而下逐步细化的模块化程序设计原则
    在这里插入图片描述

  2. 在代码编写时,强调采用单入口、单出口的3种基本控制结构(顺序、选择、循环),避免使用GOTO语句,其构成如同一串珠子一样,顺序清楚、层次分明

在这里插入图片描述

结构化程序设计方法的基本结构

顺序结构

如图所示,这是一个顺序结构。

在这里插入图片描述

其中A和B两个框是顺序执行的。即在执行完A框指定的操作后,必须接着执行B框所指定的操作

说明:顺序结构是算法的基本结构,任何一个算法都包含顺序结构

选择结构

选择结构又可被称为分支结构。

在这里插入图片描述

此结构中必包含一个判断框。根据指定的条件P是否成立而选择执行A框或B框。

说明:在选择结构中,无论条件P是否成立,只能执行A框或B框中的一个,不可能即执行A框又执行B框

循环结构

循环结构又称重复结构,即反复执行某一部分的操作。

循环结构可以分为以下两类:

  • 当(while)型循环结构:当型循环结构如图所示。

在这里插入图片描述

它的功能是:当给定的条件P1成立时,执行A框操作,执行完A框后,再判断条件P1是否成立,如果仍然成立,再执行A框,如此反复执行A框,直到某一次P1条件不成立为止,此时不执行A框,而从b点脱离循环结构。

  • 直到(until)型循环结构:直到型循环结构如图所示。

    在这里插入图片描述

    它的功能是:先执行A框,然后判断给定的条件P2是否成立,如果条件P2不成立,则再执行A框,然后再对条件P2做判断,如果条件P2仍然不成立,则再次执行A框……如此反复执行A框,直到给定的条件P2成立为止,此时不再执行A框,而从b点脱离循环结构。

这篇关于程序的控制结构详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/719753

相关文章

Spring Boot中的路径变量示例详解

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及... 目录一. 基本用法与参数映射1.路径定义2.参数绑定&nhttp://www.chinasem.cnbs

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

Redis中Stream详解及应用小结

《Redis中Stream详解及应用小结》RedisStreams是Redis5.0引入的新功能,提供了一种类似于传统消息队列的机制,但具有更高的灵活性和可扩展性,本文给大家介绍Redis中Strea... 目录1. Redis Stream 概述2. Redis Stream 的基本操作2.1. XADD

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推