• 沒有找到結果。

流程控制的認識

N/A
N/A
Protected

Academic year: 2022

Share "流程控制的認識"

Copied!
20
0
0

加載中.... (立即查看全文)

全文

(1)

流程控制的認識

程式的執行方式有循序以及跳躍執行的方式,循序式是由 上往下一一執行,而跳躍式則可依據條件判斷來處理。

流程控制的指令分為兩類:

有條件跳躍指令:根據關係運算或邏輯運算的條件式來判 斷程式執行的流程,若條件式結果為true,就執行跳躍。

有條件跳躍指令包括:

(2)

迴圈:根據關係運算或邏輯運算條件式的結果為 true 或 false 來判斷,以決定是否執行指定的程式。迴圈指令包 括:

(3)

單向選擇 if…

if…為單向選擇結構,當條件式為 true 時,就會執行 程式區塊的敘述;當條件式為 false 時,則不會執行 程式區塊的敘述。

(4)

條件式可以是關係運算式,例如:x>2;也可以是邏輯運 算式,例如:x>2 && x<5,如果程式區塊只有一行程式 碼,則大括號也可以省略,直接寫成。

以下是單向選擇流程控制的流程圖:

(5)

雙向選擇 if…else

if…else…為雙向選擇結構,當條件式為 true 時,會 執行 if 後的敘述 (程式區塊一)。當條件式為 false 時 會執行 else 後的敘述 (程式區塊二),程式區塊可以 是一行或多行的敘述,如果程式區塊的敘述只有一 行則可以省略大括號。

語法與控制流程

(6)

以下是雙向選擇流程控制的流程圖:

(7)

多向選擇

if……else If…

如果條件式為 true 時,就執行相對應的程式區塊,如果 所有條件式都是 false,則執行 else 後的程式區塊。(若 省略 else 敘述,則條件式都是 false 時將不執行任何程式 區塊)

(8)

以下是多向選擇流程控制的流程圖 (以設定 3 個條件式為 例):

(9)

switch…case

使用 if…else if… 多向選擇有一個缺點,當判斷的條件式較 多時,會使程式顯得複雜且不易閱讀,若使用

switch…case 則可以改善程式碼複雜的狀況,但是 switch 只能判斷整數或字串條件式,使用上限制也較多,而

if …else if 則無此限制。

(10)

以下是 switch 多向選擇流程控制的流程圖 (以設定 3 個條 件式為例):

(11)

重複結構

重複結構會重複執行指定區塊的程式碼,包括指定重複次 數的 for…和依前後條件測試的while…、do…while。

for…迴圈

for…迴圈自初值開始判斷 <條件判斷> 是否為 true,若為 true 則執行 for 迴圈內的敘述,並依 <增量值>,每次增 加 (或減少) 指定的增量值,直至 <條件判斷> 為 false 為 止,break則可以強迫結束 for 迴圈。

(12)

語法與控制流程

(13)

以下是 for 計次迴圈流程控制的流程圖:

(14)

for each…迴圈

for each …是陣列 (Arrays) 或集合 (Collections) 的專用 迴圈,它會依序對陣列中的每個元素執行。

語法

(15)

while 前測試迴圈

前測試迴圈會先測試 <條件式> 是否滿足,以決定是否要 執行迴圈內的程式區塊。若條件成立就執行程式區塊一次,

然後再回到迴圈最前面的條件式繼續測試;若條件不成立 就結束迴圈的執行。在前測試迴圈中,如果連第一次的測 試條件都不成立,則程式區塊將完全未被執行。

語法與控制流程

(16)

以下是 while 迴圈流程控制的流程圖:

以下是 do…while 迴圈流程控制的流程圖:

(17)

Do..while

(18)

try…catch…finally 錯誤處理

應用程式在開發過程中難免發生錯誤,如何發現錯誤所在 並加以修正,是每一個程式設計者必須具備的基本能力。

C++ 和 C++/CLR 對於錯誤處理的語法稍有不同,所以分 開來說明。

(19)

語法

C++中的例外處理使用三個關鍵字來進行:try、throw、

catch,其語法架構如下:

(20)

C++/CLR 結構化錯誤處理

感覺上,C++ 的錯誤處理功能似乎稍嫌不足,幸好 CLR 的錯誤處理做了改進。CLR 的錯誤處理語法和 C++ 稍有不同,其語法如下:

語法

參考文獻

相關文件

�您�� BIOS 設定完成後,請選擇本項目以�認所有設定值存入 CMOS 記憶體內。按下 &lt;Enter&gt; 鍵後�出現一個詢問視窗,選擇 [Ok],�設定值存 Ok],�設定值存 ],�設定值存 入

定義為∣G(jω)∣降至零頻率增益(直流增益)值之 0.707 倍 時之頻率或-3dB 時頻率。.

在撰寫網頁應用程式 HTML 的語法當中,以下何者錯誤?(A)&lt;a&gt;是用來製作超連結的標記(Tag) (B)HREF 是一個在&lt;a&gt;與&lt;/a&gt;中指定其他

Britain–s £50 Note Will Honor Computing Pioneer Alan Turing.. 盧政良 台大資訊系

原因: 技術進步,加上對可攜帶音樂設備的需求增加(黑膠唱片 &gt; 錄音帶 &gt; CD- ROM &gt; 迷你光碟 &gt; SD咭 &gt;

在【逐步解析 1】中,共需要輸入 2 個答案,為了避免「後面 輸入的答案(數學分數)」取代「前面的答案(國文分數)」,我 們要利用 2 個不同的變數來區別兩者,並以變數

[r]

「不構成犯罪」但另一位認 定未敘及,從形式觀察,兩 位的評斷竟有明顯兩不相容 的歧異判斷,堪認有其中一