一、為什么C/C用順序結構、選擇結構、循環結構就能實現所有功能
其實只是說結構化語言,可以用順序結構、選擇結構、循環結構來描述全部的算法而已。
順序結構:從頭到尾一句接著一句的執行下來,直到執行完最后一句;
選擇結構:到某個節點后,會根據一次判斷的結果來決定之后向哪一個分支方向執行;
循環結構:循環結構有一個循環體,循環體里是一段代碼。對于循環結構來說,關鍵在于根據判斷的結果,來決定循環體執行多少次;
注:在邏輯上有一種bool類型(也叫boolean類型,布爾類型),只有兩個值,即真和假。C語言的判斷表達式最終的值就是一個bool類型,這個判斷表達式的bool值就決定了選擇結構如何選擇,循環結構如何循環。
需要編程解決的問題邏輯紛繁復雜,程序設計語言里面為什么只有三種基本的程序結構就夠用了?
對于程序設計語言中的三種基本結構:順序、選擇、循環,大家應該都比較熟悉了,確實也只有這些。
其實,這個問題是經過嚴格證明過的。1966年,計算機科學家 Bohm 和 Jacopini 證明了這樣的事實:任何簡單或復雜的算法都可以由順序結構、選擇結構和循環結構這三種基本結構組合而成。所以,這三種結構就被稱為程序設計的三種基本結構。也是 結構化程序設計 必須采用的結構。想詳細了解的可以去看下論文:Bohm C., Jacopini G. “Flow diagrams, Turing machines and languages with only two formation rules.” Communications of the Association for Computing Machinery, Vol.9, pp. 366–371. 1966.
荷蘭學者Dijkstra1968年提出了“結構化程序設計”的思想,它規定了一套方法,使程序具有合理的結構,以保證和驗證程序的正確性,這種方法要求程序設計者不能隨心所欲地編寫程序,而要按照一定的結構形式來設計和編寫程序,它的一個重要目的是使程序具有良好的結構,使程序易于設計,易于理解,易于調試修改,以提高設計和維護程序工作的效率。
結構化程序規定了以下三種基本結構作為程序的基本單元: 以上三種基本結構可以派生出其它形式的結構.由這三種基本結構所構成的算法可以處理任何復雜的問題.所謂結構化程序就是由這三種基本結構所組成的程序.可以看到,三種基本結構都具有以下特點:①有一個入口.②有一個出口.③結構中每一部分都應當有被執行到的機會,也就是說,每一部分都應當有一條從入口到出口的路徑通過它(至少通過一次).④沒有死循環(無終止的循環).
按結構化程序設計方法設計出的程序優點是:結構良好、各模塊間的關系清晰簡單、每一模塊內都由基本單元組成。這樣設計出的程序清晰易讀,可理解性好,容易設計,容易驗證其正確性,也容易維護。同時,由于采用了“自頂向下、逐步細化”的實施方法,能有效地組織人們的智力,有利于軟件的工程化開發。
延伸閱讀:
二、goto語句
C語言提供了可以使用的goto語句和標記跳轉的標號。理論上goto語句沒有使用必要(容易代碼邏輯錯造成隨意跳轉),但在深層循環嵌套使用break達不到目的。而可以使用goto可以解決
語法
標號:
??語句;
if(表達式)
??goto 標號;
標號:表達需要跳轉的位置
goto 標號:跳到哪個標號去