順序結(jié)構(gòu)
順序結(jié)構(gòu)(英語(yǔ):Sequential structure)是指表明程序中所有操作都按其出現(xiàn)的順序執(zhí)行的結(jié)構(gòu)。它是三種類型的控制結(jié)構(gòu)之一。這種結(jié)構(gòu)的特點(diǎn)是程序從入口點(diǎn)開(kāi)始,按順序執(zhí)行所有操作,直到出口點(diǎn)結(jié)束。在順序結(jié)構(gòu)中,無(wú)論程序中包含哪種結(jié)構(gòu),程序的整體過(guò)程都是順序結(jié)構(gòu),是自上而下執(zhí)行的。序列結(jié)構(gòu)是編程中最簡(jiǎn)單、最常用的基本結(jié)構(gòu)。它是任何程序的主要基本結(jié)構(gòu),甚至在選擇結(jié)構(gòu)或循環(huán)結(jié)構(gòu)中,序列結(jié)構(gòu)也經(jīng)常被用作其子結(jié)構(gòu)。
序列結(jié)構(gòu)的程序功能有限,在處理實(shí)際問(wèn)題時(shí)會(huì)遇到復(fù)雜的問(wèn)題,應(yīng)用序列結(jié)構(gòu)的程序無(wú)法完全解決這些問(wèn)題。例如,有時(shí)需要根據(jù)某些條件是否成立進(jìn)行判斷,然后根據(jù)判斷結(jié)果執(zhí)行不同的處理程序,以確定程序的執(zhí)行方向;有時(shí)需要多次重復(fù)執(zhí)行一個(gè)程序。在某些情況下,有必要使用選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。有了順序結(jié)構(gòu),程序可以按順序執(zhí)行每個(gè)動(dòng)作。一個(gè)序列結(jié)構(gòu)包含幾個(gè)事件,但它們不能分支和轉(zhuǎn)移。一旦程序按順序執(zhí)行了事件,程序?qū)⒁徊揭徊降貓?zhí)行直到結(jié)束。
概念定義 編輯本段
順序結(jié)構(gòu)意味著程序中的操作是按照它們出現(xiàn)的順序執(zhí)行的。無(wú)論程序中包含哪種結(jié)構(gòu),程序的整體過(guò)程都是順序結(jié)構(gòu),自上而下執(zhí)行。序列結(jié)構(gòu)在不同編程語(yǔ)言中的不同表現(xiàn)如下:
C語(yǔ)言中的序列結(jié)構(gòu)是C語(yǔ)句到C程序轉(zhuǎn)換的起點(diǎn)。一個(gè)C程序從主入口開(kāi)始,從前到后依次執(zhí)行,直到main()函數(shù)體中的語(yǔ)句執(zhí)行完畢,程序結(jié)束。
Java的序列結(jié)構(gòu)Java是默認(rèn)的Java程序結(jié)構(gòu)。默認(rèn)情況下,Java程序?qū)⒏鶕?jù)序列結(jié)構(gòu)逐步執(zhí)行程序。在Java中,序列結(jié)構(gòu)中的語(yǔ)句可以分為三類:表達(dá)式語(yǔ)句、空語(yǔ)句和復(fù)合語(yǔ)句。
Python在Python中,縮進(jìn)的代碼表示它屬于上一行代碼,而縮進(jìn)的代碼表示它與上一行代碼是順序關(guān)系。
歷史進(jìn)程 編輯本段
高級(jí)編程語(yǔ)言引入了控制結(jié)構(gòu):世界上最早的高級(jí)編程語(yǔ)言Fortran于1954年問(wèn)世,并于1957年由IBM正式推出。它的缺點(diǎn)是不方便設(shè)計(jì)和編寫(xiě)結(jié)構(gòu)化程序。在隨后的十年中,針對(duì)不同的應(yīng)用領(lǐng)域出現(xiàn)了ALGOL60、COBOL和LISP等高級(jí)語(yǔ)言。直到20世紀(jì)60年代末N. Wirth教授在瑞士蘇黎世聯(lián)邦理工大學(xué)創(chuàng)立Pascal編程語(yǔ)言之前,Pascal是第一個(gè)系統(tǒng)體現(xiàn)結(jié)構(gòu)化編程思想的語(yǔ)言,其結(jié)構(gòu)控制和數(shù)據(jù)類型非常豐富。在此期間,軟件工作者追求的主要目標(biāo)是設(shè)計(jì)和實(shí)現(xiàn)一種在控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)方面具有強(qiáng)大性能的高級(jí)語(yǔ)言。為了提高程序的可靠性,首先要使程序具有簡(jiǎn)明的控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),因此必須對(duì)程序結(jié)構(gòu)和風(fēng)格施加必要的限制,并由此提出了結(jié)構(gòu)化程序設(shè)計(jì)的思想。它將程序結(jié)構(gòu)限制為三種基本結(jié)構(gòu):序列、選擇和循環(huán)。在高級(jí)語(yǔ)言的編程中,順序編程是編程的基礎(chǔ)。Sequence structure的程序按照程序的順序一個(gè)接一個(gè)地執(zhí)行,直到程序完成,并且對(duì)程序的進(jìn)程沒(méi)有控制。
基本原理 編輯本段
線性執(zhí)行
線性執(zhí)行通常稱為順序執(zhí)行,這意味著每個(gè)程序腳本中的命令都是按照程序中列出的順序執(zhí)行的。一個(gè)應(yīng)用程序可以分成幾個(gè)程序段,每個(gè)程序段必須按一定的順序執(zhí)行。只有在執(zhí)行了前一個(gè)程序段(操作)后,才能執(zhí)行后一個(gè)程序段(操作)。例如,當(dāng)計(jì)算機(jī)計(jì)算時(shí),它總是需要先輸入用戶程序和數(shù)據(jù),然后才能計(jì)算并最終打印出結(jié)果。
無(wú)條件跳轉(zhuǎn)
無(wú)條件轉(zhuǎn)移意味著程序可以在沒(méi)有任何前提條件的情況下更改執(zhí)行順序。只要處理器執(zhí)行無(wú)條件分支指令,它就可以使程序轉(zhuǎn)到指定的目的地址,并從目的地址開(kāi)始執(zhí)行指令。程序從上到下依次執(zhí)行每個(gè)可執(zhí)行語(yǔ)句指定的任務(wù)。這種程序結(jié)構(gòu)被稱為序列結(jié)構(gòu),但大多數(shù)實(shí)際問(wèn)題不能單獨(dú)使用這種結(jié)構(gòu)來(lái)解決。在FORTRAN語(yǔ)句中,無(wú)條件分支語(yǔ)句可用于在程序執(zhí)行過(guò)程中跳過(guò)程序段。
自上而下設(shè)計(jì)
自頂向下設(shè)計(jì)技術(shù)將一個(gè)算法分解成幾個(gè)函數(shù)。自上而下的設(shè)計(jì)過(guò)程如下:將程序的整個(gè)任務(wù)分解為一系列子任務(wù);檢查每個(gè)子任務(wù),以確定是否可以進(jìn)一步分解為更多的子任務(wù);重復(fù)此步驟,直到不再有子任務(wù);一旦確定了所有子任務(wù),就可以將它們寫(xiě)入代碼。這個(gè)過(guò)程稱為自頂向下的設(shè)計(jì)方法。結(jié)構(gòu)化程序設(shè)計(jì)采用“自上而下,逐步細(xì)化”的設(shè)計(jì)方法。順序結(jié)構(gòu)是程序的基本結(jié)構(gòu)之一,其特點(diǎn)是幾個(gè)程序步驟由順序結(jié)構(gòu)組成,從上到下依次執(zhí)行。
結(jié)構(gòu)化程序設(shè)計(jì)
結(jié)構(gòu)化程序設(shè)計(jì)也稱為結(jié)構(gòu)化程序設(shè)計(jì),包括三種重要的控制結(jié)構(gòu):序列結(jié)構(gòu)、選擇結(jié)構(gòu)(也稱為分支結(jié)構(gòu))和循環(huán)結(jié)構(gòu)。其中,序列結(jié)構(gòu)是在程序語(yǔ)句序列中執(zhí)行以完成相應(yīng)的功能。序列結(jié)構(gòu)是最簡(jiǎn)單、最基本的程序結(jié)構(gòu),是所有復(fù)雜程序設(shè)計(jì)的基礎(chǔ)和組成部分。通常,實(shí)際應(yīng)用的結(jié)構(gòu)要比序列結(jié)構(gòu)復(fù)雜得多,但序列結(jié)構(gòu)是復(fù)雜程序的基礎(chǔ)和支柱。
控制結(jié)構(gòu) 編輯本段
選擇結(jié)構(gòu)
選擇結(jié)構(gòu)可以根據(jù)表達(dá)式的值選擇并執(zhí)行程序中的一組語(yǔ)句。換句話說(shuō),選擇結(jié)構(gòu)可以控制程序中的語(yǔ)句在滿足某些條件時(shí)執(zhí)行,而在不滿足條件時(shí)不執(zhí)行。
循環(huán)結(jié)構(gòu)
循環(huán)結(jié)構(gòu)是指只要滿足某些條件,程序就會(huì)重復(fù)執(zhí)行,直到不再滿足這些條件。重復(fù)執(zhí)行的程序段稱為循環(huán)體。如果不希望循環(huán)體連續(xù)循環(huán),循環(huán)體中應(yīng)該有更改循環(huán)條件的語(yǔ)句。
循環(huán)體中有兩種循環(huán)結(jié)構(gòu):一種是當(dāng)前循環(huán)結(jié)構(gòu),先判斷條件表達(dá)式的值,只要值為yes就重復(fù)執(zhí)行循環(huán)體;另一種是until循環(huán)結(jié)構(gòu),循環(huán)體執(zhí)行一次,然后判斷條件表達(dá)式的值是否為真。如果為真,循環(huán)體將重復(fù)執(zhí)行,直到條件表達(dá)式的值為假。
主要應(yīng)用 編輯本段
LabVIEW程序的應(yīng)用
LabVIEW程序的運(yùn)行依賴于程序中的順序數(shù)據(jù)流,而其他文本編程語(yǔ)言(如C語(yǔ)言)是根據(jù)代碼的順序進(jìn)行編譯和執(zhí)行的。利用數(shù)據(jù)節(jié)點(diǎn)之間的數(shù)據(jù)流連接來(lái)實(shí)現(xiàn)程序的順序操作。此外,LabVIEW提供了圖形化的序列結(jié)構(gòu)來(lái)實(shí)現(xiàn)模塊代碼的順序執(zhí)行,包括兩種序列結(jié)構(gòu):平鋪序列結(jié)構(gòu)和級(jí)聯(lián)序列結(jié)構(gòu)。
在VBA的應(yīng)用
順序結(jié)構(gòu)是每個(gè)句子按照出現(xiàn)的順序執(zhí)行。在一般程序設(shè)計(jì)語(yǔ)言中,序列結(jié)構(gòu)的語(yǔ)句主要是賦值語(yǔ)句、輸入/輸出語(yǔ)句等。在VBA中,有用于人機(jī)交互的輸入函數(shù)InputBox()和輸出函數(shù)MsgBox()。
計(jì)算機(jī)應(yīng)用場(chǎng)景中的應(yīng)用
序列結(jié)構(gòu)是計(jì)算機(jī)程序執(zhí)行控制流的三種基本結(jié)構(gòu)之一。在編程中,序列結(jié)構(gòu)還用于需要以線性方式執(zhí)行語(yǔ)句的各種場(chǎng)景。例如計(jì)算一系列數(shù)字的總和、從文件或用戶讀取輸入數(shù)據(jù)、將輸出數(shù)據(jù)寫(xiě)入文件或控制臺(tái)以及執(zhí)行數(shù)學(xué)計(jì)算。序列結(jié)構(gòu)是常用的文件物理組織形式之一。文件的物理結(jié)構(gòu)決定了如何將記錄或字節(jié)保存到存儲(chǔ)設(shè)備的物理塊中。使用序列結(jié)構(gòu)的優(yōu)點(diǎn)是訪問(wèn)速度快。序列結(jié)構(gòu)是最簡(jiǎn)單、最基本的程序控制結(jié)構(gòu),但它是程序框架的基本組成部分,任何程序文件都必須包含序列結(jié)構(gòu)。
附件列表
詞條內(nèi)容僅供參考,如果您需要解決具體問(wèn)題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。
如果您認(rèn)為本詞條還有待完善,請(qǐng) 編輯