天天看點

C語言 選擇結構

一.選擇結構

1. 單分支選擇結構

2. 雙分支選擇結構

3. 多分支選擇結構

1. 單分支選擇結構

1.1何為單分支選擇結構?

從開始到結束之間隻有一條路可供選擇。

1.2何為雙分支結構?

從開始到結束之間有兩條路可供選擇。

1.3何為多分支結構?

從開始到結束之間有三條及三條以上的路可供選擇。

**接招看題004.**用單分支選擇結構的條件語句程式設計,計算并輸出兩個整數的最大值。

C語言 選擇結構

2. 雙分支選擇結構

2.1 如何使用雙分支控制條件的語句?

if(表達式P) 語句1

else 語句2

使用if-else流程是:如果表達式P的值為真,就執行語句1,否則就執行語句2.

知識更新檔

if-else語句跟簡單的if語句的差別是?

使用簡單的if語句,可供的選擇是:要麼執行一條語句;要麼就不執行,跳過它。而if-else 語句可供的選擇是:在兩條語句中選擇其中的一條來執行。

接題看招005:用雙分支控制條件的語句程式設計,計算并輸出兩個整數的最大值。**

C語言 選擇結構

知識拓展:條件運算符和條件表達式

1.何為條件運算符?(關于條件運算符知多少?)

條件運算符是C語言中的唯一一個三元運算符,即參與運算時需要三個操作數。比如通過加減乘除運算符,将X,Y,Z(任意三個變量)進行相關的運算。

2.條件運算符跟if-else有何差別?

由條件運算符構成的條件表達式,會使程式變得更加簡單,直覺。

接招看題006:用條件運算符程式設計,計算并輸出兩個整數的最大值。

C語言 選擇結構

知識更新檔::

1. 記住這句話:程式是解決問題的一種算法。是使用代碼(字元)來實作的。

是以,解題前,我們首先要知道解決問題的算法是什麼,然後将算法轉換成代碼(字元)

本題算法:首先通過關系運算符,比較兩個數的關系,即誰大誰小?

然後将最大值指派給變量max,或者說将最大值存于變量max中。*

2.何為條件表達式?

表達式1?表達式2:表達式3

講解說明:當表達式1的值為真,那麼将表達式2的結果指派給表達式1,否則将表達式3的結果指派給表達式1.

現在講解接招看題006是如何使用條件表達式的。

max=a>b?a:b;//注意運算符的優先級

運算符的優先級順序,記住五個字:非術關邏賦。

非,!。優先級第一。最大。這是校長。

術,算數運算符,+,-,*,/,%。優先級第二。這是院長。

關,>,>=,<,<=,==,!=。優先級第三。這是班主任。

其中,>,>=,<,<=,四個關系運算符的優先級 要大于 ==,!=這兩個關系運算符。

邏,!,&&,||。優先級第四。這是班長。

賦,=。優先級第五。最小。這是組長。

知識更新檔:

這些專業知識你隻需有個大概的了解就行,不需要死記硬背。隻需要在用的過程中,你知道知識在哪兒,并且會用(當然少不了動手練習喽),就OK了。網際網路時代,記憶交給存儲器(U盤,雲盤,移動硬碟),分析了解交給大腦(CPU)。

3. 多分支選擇結構

3.1多分支選擇結構

即else-if形式的條件語句。如下:

if(表達式1) 語句1

else if (表達式2) 語句2

else if (表達式n) 語句n

else 語句n+1

多分支選擇結構流程圖如下:

C語言 選擇結構

知識更新檔:

條件語句文法規定,每個條件分支隻能帶一條語句。(這個缺點就産生了複合語句)但是實際中條件分支裡往往會有多條語句才能完成這時就需要{}括起來。

知識總結歸納:

1.何為條件語句的三種形式?分别是怎麼用的?

第一種單分支—if(表達式P) 語句A

第二種雙分支—if(表達式P) 語句A

else 語句B

第三種多分支—if(表達式1) 語句1

else if(表達式2) 語句2

else if(表達式n) 語句n

else 語句n+1

2.何為複合語句?

用{}括起來的語句叫複合語句。

例如,max=a;

printf(“max=%d”,a);

以上為兩條語句。但是若用{}括起來,就是一條複合語句。(複合語句是一個整體,可看作一條語句。)例如:

{

max=a;

printf(“max=%d”,a);

}

3.2用于多路選擇的switch語句

使用條件:多分支選擇。

舉例:分類統計學生成績;90分以上為A,80-90分之間為B;60-70分之間為C。常用于分類統計,菜單等問題。

語句格式:

switch(表達式)

{case 常量表達式1:語句1;break;

case 常量表達式2:語句2;break;

case 常量表達式3:語句3;break;

*

*

*(至少有3個分支)

case 常量表達式n:語句n;break;

default: 語句n+1;

}

switch語句執行規律

首先計算表達式的值,并逐個與其後的常量表達式相比較,如果表達式的值與某個常量表達式的值相等,即執行該常量表達式後的語句;如果沒有找到與表達式比對的常量表達式,則執行defualt 語句。

知識更新檔:

(1)在switch語句中,“case常量表達式”相當于一個語句标号,表達式的值和某标号相等就執行該标号後的語句,碰到break跳出本層switch。

(2)switch括号内表達式的值和case後面的常量的表達式的值隻能是整型或字元型。讀者注意記憶重點知識。

(3)同一個switch語句中,case後的各常量表達式的值不能相同。

(4)在case後允許有多個語句,可以不用{}括起來。

(5)各case和default語句的先後順序可以變動,不會影響程式運作的結果。

(6)在需要用switch語句選擇關系型運作條件的時候,應先用if進行判斷。

接招看題007:從鍵盤接受一個數字,輸出對應的星期幾的英文單詞。

C語言 選擇結構
C語言 選擇結構

深入了解break和continue語句:

(1)結合接招看題007進行了解。注意沒有break和有break的效果(這就是了解)

當case常量表達式沒有break結尾,會導緻連續輸出case後面語句裡的字元串。加上break結尾,會直接跳出本層switch,好處是避免輸出不應有的結果。(顯然連續輸出不是我們想要的輸出結果。我們想要的結果是“一對一”的邏輯關系,1—monday,7—sunday,而不是1—monday****fridaysunday)

(2)因為continue語句隻用在for,while,do-while等循環體中,是以在後續循環結構會涉及到。

switch與if的比較