
控制結構 (control structure) 有三種,分別是循序 (sequence) 、選擇 (selection) 、重複 (repetition) ,通常在程式語言中,程式碼從上而下一行一行依次排列,程式也依此順序執行,這就是所謂的循序結構。循序結構為一般程式語言執行的基本方式,包括 C++ 。
選擇結構為依條件讓程式分流執行,如下圖

條件為真,程式執行分流 one ,條件為假,程式執行分流 two ,這便是典型的選擇結構之例。
C++ 中提供的選擇結構如下表
| 選擇結構 | 簡述 |
|---|---|
| if | 如果條件為真才執行 |
| if-else | 如果條件為真執行某某,否則執行某某 |
| switch | 多重條件選擇,並可設定預設執行選項 |
最簡單的為 if 陳述 (if statement) ,如下例
| 001 | #include <iostream> |
| 002 | |
| 003 | int main() { |
| 004 | int a = 22; |
| 005 | int b = 34; |
| 006 | |
| 007 | if (a > b) { |
| 008 | std::cout << "Good luck!" |
| 009 | << std::endl; |
| 010 | } |
| 011 | |
| 012 | if (a != b) { |
| 013 | std::cout << "Have a nice day!" |
| 014 | << std::endl; |
| 015 | } |
| 016 | |
| 017 | return 0; |
| 018 | } |
| 019 | |
| 020 | /* Kaiching Chang |
| 021 | u05_1.cpp |
| 022 | 2014-02 */ |
編譯後執行,結果如下
| $ g++ u05_1.cpp |
| $ ./a.out |
| Have a nice day! |
| $ |
if 陳述在出現在第 7 行及第 12 行。 if 為 C++ 的關鍵字 (keyword) 之一,緊接在 if 後頭的小括弧即為條件 (condition) 運算式 (expression) ,運算式的結果為布林值,若非 true ,即為 false 。條件為 true ,隨後大括弧內的程式區塊就會被執行,反之,若運算式的結果為 false ,程式就會跳過大括弧的程式區塊,尋找區塊後的程式繼續執行。
true 即是邏輯上的真, false 為邏輯上的假。
此例中,第 7 行
| 007 | if (a > b) { |
由於 a > b 的條件為假,所以 Good luck! 的英文字串不會被列印出來,而第 12 行
| 012 | if (a != b) { |
a != b 的條件為真,所以程式會印出 Have a nice day! 的英文字串。
重複結構是讓程式重複執行某些工作,如下圖

當有工作需要重複執行時,重複的條件為真,此工作就重複執行一次,執行完畢再行測試條件,條件為真,繼續重複執行此工作,直到條件為假時,結束工作的執行。依此執行的方式為重複結構,也被稱為迴圈。
因此,具有重複結構的程式通常需要下列三項基本任務
| 1. 控制變數初始設定 |
| 2. 迴圈結束條件測試 |
| 3. 調整控制變數的值 |
C++ 中提供的重複結構如下表
| 重複結構 | 簡述 |
|---|---|
| for | 通常用於有明確重複數的迴圈 |
| while | 前測試迴圈 |
| do-while | 後測試迴圈 |
常見的 for 迴圈 (for loop) ,如下例
| 001 | #include <iostream> |
| 002 | |
| 003 | int main() { |
| 004 | int i; |
| 005 | |
| 006 | for (i = 0; i <= 10; i++) { |
| 007 | std::cout << i |
| 008 | << std::endl; |
| 009 | } |
| 010 | |
| 011 | return 0; |
| 012 | } |
| 013 | |
| 014 | /* Kaiching Chang |
| 015 | u05_2.cpp |
| 016 | 2014-02 */ |
編譯後執行,結果如下
| $ g++ u05_2.cpp |
| $ ./a.out |
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| $ |
for 為 C++ 的關鍵字之一。第 7 行在關鍵字 for 之後緊接著的小括弧為 for 迴圈的控制項目,用分號分隔的三個項目,分別是
| 控制變數初始設定; | 迴圈條件測試; | 調整控制變數的值 |
此例中, i 為迴圈的控制變數,初始值設為 0 ,而迴圈結束條件為 i < 10 ,每執行完一次迴圈, i 就遞增 1 。因此,此程式重複印出 i 的值,恰巧從 0 印到 9 為止。
C++ 除了提供選擇、重複等控制結構外,還提供 break 、 continue 、 goto 等機制,下面我們分成數個部分介紹 C++ 的各種陳述
- 5.1 - if 陳述
- 5.2 - else 陳述
- 5.3 - switch 陳述
- 5.4 - for 陳述
- 5.5 - while 陳述
- 5.6 - do-while 陳述
- 5.7 - break 陳述
- 5.8 - continue 陳述
- 5.9 - goto 陳述
- 5.10 - 摘要
continue ...
沒有留言:
張貼留言