流程控制的基本概念

 我来答
洗刷刷SKs0
2016-05-29 · 超过41用户采纳过TA的回答
知道答主
回答量:147
采纳率:0%
帮助的人:94.3万
展开全部

在声明式的编程语言中,流程控制指令是指会改变程序运行顺序的指令,可能是运行不同位置的指令,或是在二段(或多段)程序中选择一个运行。
不同的编程语言所提供的流程控制指令也会随之不同,但一般可以分为以下四种: 继续运行位在不同位置的一段指令(无条件分支指令)。 若特定条件成立时,运行一段指令,例如C语言的switch指令,是一种有条件分支指令。 运行一段指令若干次,直到特定条件成立为止,例如C语言的for指令,仍然可视为一种有条件分支指令。 运行位在不同位置的一段指令,但完成后会继续运行原来要运行的指令,包括子程序、协程(coroutine)及延续性(continuation)。 停止程序,不运行任何指令(无条件的终止)。 中断以及Unix系统中的信号等较低级的机制也可以造成类似子程序的效果,不过通常这类机制会用来回应外部的事件或是输入。程序自修改因为其对代码的影响,也会影响控制流程,但多半不会有明显的流程控制指令。
在机器语言或汇编语言中,流程控制是借由修改程序计数器数值来达到。一些中央处理器只支持条件分支(branch)或是无条件分支(有时会称为jump)。 标记是一个标示在源代码固定位置中的名称或数字,其他位置的流程控制指令可以参考标记的位置,运行标记位置所对应的程序。标记本身不影响程序的进行,除了标示位置外,对程序运行没有其他的作用。
有一些编程语言(像Fortran及BASIC等)利用行号作为标记。行号是标示在每一行程序最前面的自然数,不一定要是连续的数字,在不受流程控制指令影响的情形下,程序会从最小的行号依序运行,而流程控制指令需指定对应的行号。以下是一个BASIC的例子: LETX=3PRINT*LETX=X-1IFX>0THENGOTO20END在像是C及Ada等编程语言中,标记是一个标识符,一般出现在一行的最前面,后面会加一个冒号作为识别,以下是C语言的例子:
Success: printf (The operation was successful.\n);
Algol 60语言同时支持整数(类似行号)及标识符的标记(二者后面都要加上冒号),不过其他Algol语言几乎都不支持整数的标记。 goto 指令(来自英文go和to的组合)是无条件流程控制指令中最基本的型式。一般在程序中会用以下的方式出现(指令大小写可能会依编程语言而不同) gotolabelgoto 指令的效果是调整程序的控制流程,后续就运行标记位置的程序。
goto 指令是许多的计算机科学家视为有害(considered harmful)的指令,例如Edsger Wybe Dijkstra提出了goto有害论。 子程序(subroutine)可以用许多不同的术语来表示,例如程序、函数(尤其是有传回值时)或是方法(特别是子程序属于一个类的一部份)等。
子程序是是完成一项特定工作的代码串行,其他程序可以将流程移转到子程序中,运行特定工作后再回到原来的程序,若程序中有许多部份都需要运行一特定工作,利用子程序的方式可以利用一段程序达到上述的功能,可以减少代码的长度。
如今子程序也常用来使得程序更加的结构化,例如可以将一些特殊的算法或特殊的数据访问方式放在子程序中,和其他代码隔离。子程序也是程序模块的一种,若许多程序员共同开发一个程序,子程序也有助于其工作的分区及分工。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
武汉多贝斯特
2024-10-09 广告
实验台是科学实验室中必不可少的设备之一,它的类型和用途多种多样。首先,化学实验台是用于进行化学实验的。在这种实验台上,科学家可以进行各种化学反应,混合化学品,以及观察和记录实验数据。这些实验台通常具有耐腐蚀性能和防火性能,以确保实验的安全进... 点击进入详情页
本回答由武汉多贝斯特提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式