1 / 43

明解 C++ 教學手冊 柴田望洋 博士 著

明解 C++ 教學手冊 柴田望洋 博士 著. 第二章 程式流程的分歧. 本章所要學習的是各種運算子,以及用來讓程式流程分歧的 if 敘述和 switch 敘述。. 2-1 if 敘述. if 敘述 ( 其一 ). 語法: if ( 條件 ) 敘述 只有在 條件 (condition) 成立時才會執行 敘述 。 true 和 false 是被稱為 布林常值 (boolean literal) 的 bool 型態的值。. if 敘述 ( 其二 ) 語法: if( 條件 ) 敘述 else 敘述

alyn
Télécharger la présentation

明解 C++ 教學手冊 柴田望洋 博士 著

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 明解C++教學手冊柴田望洋 博士 著

  2. 第二章 程式流程的分歧 本章所要學習的是各種運算子,以及用來讓程式流程分歧的if敘述和switch敘述。

  3. 2-1 if敘述 if敘述 (其一)

  4. 語法: if (條件) 敘述 只有在條件(condition)成立時才會執行敘述。 true和false是被稱為布林常值(boolean literal)的bool型態的值。

  5. if敘述 (其二) 語法: if(條件) 敘述 else 敘述 若條件是true就執行前面的敘述,false則執行後面的敘述。

  6. 相等運算子 (equality) 「==」是用來判斷左右運算元是否相等的運算子,而判斷是否不相等的就是「!=」運算子。

  7. 邏輯否定運算子 「!」是將真和偽反轉的邏輯否定運算子(logical negative operator)。

  8. 變成巢狀敘述的if敘述 在if敘述中放入if敘述,就成了「巢狀結構」的敘述。

  9. 運算式和判斷 使用運算子將變數和常值結合起來,就叫做運算式(expression)。 例如: c + 32 a = c + 32 調查運算式的值叫做判斷(evaluation)。

  10. 運算式敘述和空敘述 在運算式加上分號的敘述,就叫做運算式敘述(expression statement)。 只有分號的運算式敘述,就叫做空敘述(null statement)。

  11. 邏輯運算子 「&&」和「||」都是執行邏輯運算的邏輯運算子(logical operator)。

  12. 邏輯積運算子「&&」 「x&&y」可以想成是「x且y」。 邏輯和運算子「||」 「 x||y」可以想成是「x或y」。

  13. 條件運算子 下列程式可以不使用if敘述來實現。

  14. 條件運算子(conditional operator)是唯一的三元運算子,而使用此運算子的就是條件運算式(conditional expression)。

  15. 三值的最大值 「處理的流程」就稱為演算法(algoruthm)。

  16. 求取三個值中的最大值之步驟如下:

  17. 區塊 用{ }框起來的並排敘述就叫做區塊(block)或複合敘述(compound statement)。 只能是單一敘述,但又不得不以複數敘述來執行的部份,可以將該部份的敘述匯整為區塊。 下面這些都是區塊。

  18. 逗號運算子 使用逗號並排的兩個運算式,會被看成是單一運算式,在此運算式之後加上分號,則會使它變成單一敘述。 逗號運算子左側的運算式只會進行判斷,其值將會被捨去,而判斷右側運算式所得到的型態和值,則會成為左右運算式全體的型態和值。

  19. 排序兩個數值 排序(sort)是藉由交換變數的值來進行。

  20. 排序分為升冪排序和降冪排序這兩種。 爲了交換兩個變數的值,還需要一個作業用的變數。 在區塊內進行交換的步驟如下:

  21. 有條件的宣告 只在該if敘述中使用,且用來判斷條件分歧之變數,必須在條件的部份宣告。

  22. 求取餘數的「%」運算子,只能在兩個運算元都是整數的情況下使用。求取餘數的「%」運算子,只能在兩個運算元都是整數的情況下使用。

  23. 2-2 switch敘述 switch敘述

  24. switch敘述可以根據判斷條件式之後的值,將程式流程分岐成數條。switch敘述可以根據判斷條件式之後的值,將程式流程分岐成數條。 像「case1:」這種表示程式所要移往的目標之標記,就是標籤(label),標籤的值必須是常數。 程式流程移往標籤之後,就會執行其後的敘述。 若遇到break敘述的話,程式的流程就會跳脫switch敘述。

  25. 當判斷條件式之後所得的值,和每一個case都不一致時,程式的流程就會移到default:標籤。當判斷條件式之後所得的值,和每一個case都不一致時,程式的流程就會移到default:標籤。

  26. if敘述和switch敘述都夠將程式的流程分岐,但switch敘述比較容易讓人看清程式的整體。if敘述和switch敘述都夠將程式的流程分岐,但switch敘述比較容易讓人看清程式的整體。 if敘述和switch敘述可以統稱為 選擇敘述(selection statement)。

  27. 2-3 關鍵字、識別字、運算子 關鍵字 關鍵字(keyword)不可以拿來作為變數等的名稱。

  28. 還有能夠模擬關鍵字的替換表示法(alternative representation)。

  29. 識別字 識別字(identifier)是賦予變數、函數、類別等的名稱。

  30. 分隔符號 用來區隔關鍵字與識別字的符號,就稱為分隔符號(punctuator)。 常值 字元常值、整數常值、字串常值都是構成程式的要素。

  31. 運算子 在運算子的一覽表中,越上面的運算子表示其優先順序(precedence)越高。 當優先順序相同的運算子連接在一起時,用來表示先執行左邊還是右邊的就是結合規則(associativity)。 判斷指定運算式時,可以得到指定後的左運算元的型態和值。

  32. 總結 使用運算子結合常值、變數之後就會變成運算式。原則上都可以判斷運算式的值。 判斷使用關係運算子、相等運算子、邏輯否定運算子以及邏輯運算子的運算式時,會產生bool型態的值。 條件的成立與否是以bool型態的真和偽來表示,0以外的值會被視為true,而0則會被視為false。 由於使用邏輯運算子的邏輯運算式會進行捷徑判斷,所以右側的運算元有可能不會被判斷。 加上分號的運算式就是運算式敘述。 只有分號的運算式敘述就叫做空敘述。 只在某條件成立時進行的處理,可以透過if敘述來實現。

  33. 以某條件的成立與否來進行不同的處理,可以透過if~else敘述來實現。以某條件的成立與否來進行不同的處理,可以透過if~else敘述來實現。 依據某個運算式的值,來將程式的流程分歧的處理,可以透過switch敘述來實現。 switch敘述會在程式的流程跳到標籤之後一直執行敘述,直到遇到break敘述為止。如果與每個case都不一致的話,程式流程就會跳到default標籤。 switch敘述最後的標籤也應該要有break敘述。 可以在if敘述和switch敘述的條件中宣告變數。而宣告好的變數只可以在該if敘述和switch敘述中使用。 if敘述和switch敘述統稱為選擇敘述。 用{ }將0個以上的敘述框起來就是區塊。區塊在語法上會被視為一個敘述。 type型態的x與y的交換,可以藉由{ type t = x; x = y; y = t; }來進行。

  34. type型態的x和y的昇冪排序(排列成x <= y)是只在x大於y時,才進行x與y的交換。 只要使用三元運算子中的條件運算子「?:」,就可以將if敘述的工作濃縮在一個運算式中。 使用逗號運算子「,」來結合的運算式,在語法上會被視為一個運算式。 將複數個運算子並列的時候,會先執行優先順序較高的運算子。 當同樣優先順序的運算子並列的時候,該從哪邊開始執行運算是基於結合規則來決定的。 指定運算子是右結合,判斷指定運算式後所得到的是,指定後的左運算元之型態與值。 if和int等具有特別涵義的語句就是關鍵字。 運算子「&&」和「!」可以使用and和not來代替表示。 變數、函數、類別等的名字就是識別字。其開頭字元必須使用英文字母或底線,第2個字元以後才可以使用數字字元。其中的大寫以及小寫是有區別的。

More Related