一.選擇結構
1. 單分支選擇結構
2. 雙分支選擇結構
3. 多分支選擇結構
1. 單分支選擇結構
1.1何為單分支選擇結構?
從開始到結束之間隻有一條路可供選擇。
1.2何為雙分支結構?
從開始到結束之間有兩條路可供選擇。
1.3何為多分支結構?
從開始到結束之間有三條及三條以上的路可供選擇。
**接招看題004.**用單分支選擇結構的條件語句程式設計,計算并輸出兩個整數的最大值。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiQDOxEzX3xCZlhXam9VbsUmepNXZy9CXwJWZ3xCdh1mcvZ2Lc1zaHRGcWdUYuVzVa9GczoVdG1mWfVGc5RHLwIzX39GZhh2csATMflHLwEzX4xSZz91ZsAzMfRHLGZkRGZkRfJ3bs92YskmNhVTYykVNQJVMRhXVEF1X0hXZ0xiNx8VZ6l2cssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL0UTMzUTMkZ2MwATOycDOyYzX0AzNzMTMwIzLcVDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
2. 雙分支選擇結構
2.1 如何使用雙分支控制條件的語句?
if(表達式P) 語句1
else 語句2
使用if-else流程是:如果表達式P的值為真,就執行語句1,否則就執行語句2.
知識更新檔
if-else語句跟簡單的if語句的差別是?
使用簡單的if語句,可供的選擇是:要麼執行一條語句;要麼就不執行,跳過它。而if-else 語句可供的選擇是:在兩條語句中選擇其中的一條來執行。
接題看招005:用雙分支控制條件的語句程式設計,計算并輸出兩個整數的最大值。**
知識拓展:條件運算符和條件表達式
1.何為條件運算符?(關于條件運算符知多少?)
條件運算符是C語言中的唯一一個三元運算符,即參與運算時需要三個操作數。比如通過加減乘除運算符,将X,Y,Z(任意三個變量)進行相關的運算。
2.條件運算符跟if-else有何差別?
由條件運算符構成的條件表達式,會使程式變得更加簡單,直覺。
接招看題006:用條件運算符程式設計,計算并輸出兩個整數的最大值。
知識更新檔::
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
多分支選擇結構流程圖如下:
知識更新檔:
條件語句文法規定,每個條件分支隻能帶一條語句。(這個缺點就産生了複合語句)但是實際中條件分支裡往往會有多條語句才能完成這時就需要{}括起來。
知識總結歸納:
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:從鍵盤接受一個數字,輸出對應的星期幾的英文單詞。
深入了解break和continue語句:
(1)結合接招看題007進行了解。注意沒有break和有break的效果(這就是了解)
當case常量表達式沒有break結尾,會導緻連續輸出case後面語句裡的字元串。加上break結尾,會直接跳出本層switch,好處是避免輸出不應有的結果。(顯然連續輸出不是我們想要的輸出結果。我們想要的結果是“一對一”的邏輯關系,1—monday,7—sunday,而不是1—monday****fridaysunday)
(2)因為continue語句隻用在for,while,do-while等循環體中,是以在後續循環結構會涉及到。