程序的控制结构详解

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

相关文章

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

Java中ArrayList和LinkedList有什么区别举例详解

《Java中ArrayList和LinkedList有什么区别举例详解》:本文主要介绍Java中ArrayList和LinkedList区别的相关资料,包括数据结构特性、核心操作性能、内存与GC影... 目录一、底层数据结构二、核心操作性能对比三、内存与 GC 影响四、扩容机制五、线程安全与并发方案六、工程

Spring Cloud LoadBalancer 负载均衡详解

《SpringCloudLoadBalancer负载均衡详解》本文介绍了如何在SpringCloud中使用SpringCloudLoadBalancer实现客户端负载均衡,并详细讲解了轮询策略和... 目录1. 在 idea 上运行多个服务2. 问题引入3. 负载均衡4. Spring Cloud Load

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

Go路由注册方法详解

《Go路由注册方法详解》Go语言中,http.NewServeMux()和http.HandleFunc()是两种不同的路由注册方式,前者创建独立的ServeMux实例,适合模块化和分层路由,灵活性高... 目录Go路由注册方法1. 路由注册的方式2. 路由器的独立性3. 灵活性4. 启动服务器的方式5.

Java中八大包装类举例详解(通俗易懂)

《Java中八大包装类举例详解(通俗易懂)》:本文主要介绍Java中的包装类,包括它们的作用、特点、用途以及如何进行装箱和拆箱,包装类还提供了许多实用方法,如转换、获取基本类型值、比较和类型检测,... 目录一、包装类(Wrapper Class)1、简要介绍2、包装类特点3、包装类用途二、装箱和拆箱1、装

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创