程序的控制结构详解

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 Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

LabVIEW FIFO详解

在LabVIEW的FPGA开发中,FIFO(先入先出队列)是常用的数据传输机制。通过配置FIFO的属性,工程师可以在FPGA和主机之间,或不同FPGA VIs之间进行高效的数据传输。根据具体需求,FIFO有多种类型与实现方式,包括目标范围内FIFO(Target-Scoped)、DMA FIFO以及点对点流(Peer-to-Peer)。 FIFO类型 **目标范围FIFO(Target-Sc

019、JOptionPane类的常用静态方法详解

目录 JOptionPane类的常用静态方法详解 1. showInputDialog()方法 1.1基本用法 1.2带有默认值的输入框 1.3带有选项的输入对话框 1.4自定义图标的输入对话框 2. showConfirmDialog()方法 2.1基本用法 2.2自定义按钮和图标 2.3带有自定义组件的确认对话框 3. showMessageDialog()方法 3.1