分類: linux c++開發 電子書
2013-09-08 00:43
176人閱讀收藏
舉報 目錄(?)
[+]
c++程式同樣也是按照程式書寫的順序來單行執行的。這種順序型的流程執行控制對於解決實際問題顯得不足。軟體開發中通常為了處理複雜的需求,需要控制程式不同的走向。於是在原先順序控制基礎上提供了選擇控制結構以及迴圈控制結構。這樣三類基本的控制結構加上提供的跳轉語句,基本滿足了單一入口/出口的程式的需求。
c++語言針對三類控制結構,分別提供了相應的具體的使用方式。選擇結構包含if單選結構、if/else二路選擇結構以及switch多路選擇三類。迴圈結構包含while、do…while和for結構三類,加上順序結構總共七類具體控制方式。前面第4章開頭已經說明過,軟體程式設計就是向計算機說明需要做的事情。通常這個動作在程式中是以語句的方式表示出來的。至於這個動作操作的物件就是計算機資源了。對於具體控制結構,也可以看成是語句的一種組合使用。所以在了解c++具體控制結構使用情況前,先對c++語句有個清晰的認識。
c++語句就是程式執行的動作。對於語言提供的語句可以分為兩類:單條語句和語句塊(也稱為復合語句)。c++中單條語句都是以分號結尾的,通常又可以細分為宣告語句、定義語句、表示式語句等。如下幾個單條語句的定義,初步的了解幾類單語句的使用。
void getcount(); //宣告函式getcount()
int i = 3; //定義整型變數i,初始化為值3
int j = 2; //定義整型變數j,初始化為值2
sum = i+j; //定義整型變數sum,計算表示式i+j的值,將該值賦給sum
如果說單條語句是c++語言執行的基本單元,那麼語句塊就是這種基本單元的一種組合使用。它只是在語句的組合之外,加上了一對花括號來表明這是程式執行的乙個整體。最基本的函式體本身就是乙個語句塊。前面實際例子中的main()函式下一對括號中的整體部分可以看成是乙個語句塊。普遍情況下語句塊可以看成乙個整體,即看成復合語句來執行。下面通過定義語句塊在函式中使用的例項,直觀的理解語句塊的基本定義概念。
int computeresult(intsum,int a,int b) //函式頭,小括號中間為形式引數定義
以上是乙個計算兩個輸入變數之和的函式定義。函式由基本的函式名、引數列表以及函式體組成。其中,大括號括住的即為其函式體定義,這就是乙個語句塊。而中間每個分號結尾的句子稱為程式執行的語句。這裡暫時只介紹語句和語句塊的概念,函式的相關概念會在後續章節詳細介紹。
在c++中,無論將一條語句放在什麼地方,都可以看作是給其加上一對大括號。因此在乙個語句塊中放置的語句可以看成是語句塊中放置了語句塊,這個概念稱為巢狀。語句塊的巢狀使用在軟體程式設計中應該說是相當常見的,往往在極端的情況下會巢狀多層處理。但是從軟體模組性開發來講,每個功能函式定義往往要實現比較單一的功能,即應該避免多層巢狀的情況出現。如果不可避免,可以考慮重新劃分功能域來達到簡化程式執行功能的目的。
c++語言書寫程式只需要注意相關的語法格式使用,確保其正確性即可。對於一門通用性的語言,c++對於**書寫的風格等並沒有特別的規定。這也是很多初學者在學習c++語言時經常被其多變的風格所困擾的原因。在軟體工程專案中,為了能夠更好的和團隊協同開發以及減輕維護的工作量,通常會對相應的**風格做出基本的約定。因此在繼續深入學習該語言之前,對於**的基本書寫風格有必要著重講述一下。
c++程式**風格通常涉及命名約定、語句塊的布局以及注釋風格等方面。衡量好的程式編制必須是符合一定規範要求的。下面將會從這幾個方面作乙個基本的講述。
1.**命名約定
c++**命名約定可以簡單的分為變數命名、引數命名、類命名、方法和函式命名、常量命名等。最常見的約定就是變數和引數命名通常以小寫字母開頭的單詞組合而成,一般為名詞或者形容詞和名詞的組合。方法和函式名用小寫字母開頭的單詞組合而成,並且必須是動作性的。常量一般是全部使用大寫字母,遇到多個單詞組合,中間使用下劃線分割。這裡只作簡單的講述,更多的風格約定可以根據開發者喜好來制定。
2.語句塊布局
為了編寫清晰易理解的**,需要適當注意語句以及語句塊的布局風格,注意程式的整體美觀。例如,常見的基本語句布局如下所示。
int sum = i + j; //一條語句定義為一行
if (true) //對於語句塊,上下行括號對稱擺放
if(true) //即使if單選結構之後只有單條語句,需要加上語句塊括號
c++程式布局風格同樣具有多樣性,語句塊布局風格沒有硬性規定,只需要在軟體專案中保持該布局的一致性即可,風格喜好依據個人所定。目前差不多規範的軟體企業都會針對軟體開發的風格作基本的要求。
3.注釋風格
c++語言在c語言基礎上發展而來,因此c++程式相容了c語言和c++自身的注釋風格。c語言注釋符為「/*…*/」,c++注釋符為「//」,常見兩種注釋符使用情況如下所示。
/**
* 函式名:getfilename
* 功 能:獲取檔名
* 參 數:無
* 返回值:返回檔名
**/
string getfilename()
以上例項中採用了c++和c語言注釋風格相結合的方式,通常c語言的注釋風格可以使用在函式方法說明,類說明以及檔案說明等程式塊注釋。c++注釋通常使用於單行語句注釋。
c++是門支援多種**風格的語言,對於初學者有選擇的遵循一些基本約定有助於編寫清晰易懂便於維護的**。
C 結構簡介
結構是一種比陣列更靈活的資料格式,因為同乙個結構可以儲存多種型別的資料,這使得能夠將籃球運動員的資訊放在乙個結構中,從而將資料的表示的合併到一起。結構也是c 堡壘oop 類 的基石。結構是使用者定義的型別,而結構定義這種型別的屬性。定義了型別以後,便可以建立這種型別的變數。例如 struct inf...
C 控制結構和語句
例4.1 includeint main f和 lf分別是float型別和double型別用於格式化輸入輸出時對應的格式符號。其中 float,單精度浮點型,對應 f.double,雙精度浮點型,對應 lf.在用於輸出時 float型別可以使用 lf格式,但不會有任何好處。double型別如果使用了...
魯棒控制理論簡介
魯棒控制理論簡介 控制系統的魯棒性研究是現代控制理論研究中乙個非常活躍的領域,魯棒控制問題最早出現在上個世紀人們對於微分方程的研究中。black首先在他的1927年的一項專利上應用了魯棒控制。但是什麼叫做魯棒性呢?其實這個名字是乙個音譯,其英文拼寫為robust。也就是健壯和強壯的意思。控制專家用這...