1. 程式人生 > >c++基礎--另類的分支結構

c++基礎--另類的分支結構

前言:

本節課講的主要知識點是三目運算子和switch語句。同時也是我們分支結構部分的結尾內容。而從第三課開始到第五課,都是講述分支結構的相關知識點,他們的特點都是相輔相成的。因此建議通讀三篇文章。加強理解。同時做題也是必不可少滴。

三目運算子

三目運算子是一種簡化版本的分支結構,使用簡單,但是不宜巢狀過多。 否則容易造成邏輯混亂。它的格式為:

判斷條件?當條件正確的時候執行的程式碼 : 當條件不正確的時候執行的程式碼
記住?表示判斷,:表示另一種情況

比如,比較兩個數a,b的大小

int a,b,max;
a>b?max=a:max=b;

這樣的寫法是不是特別簡單,但是這個語句常使用於兩種狀態,等價於 if…else語句。只是簡單了很多。同時,也是因為簡單,如果需要多層巢狀的時候,容易發生邏輯錯誤。比如找出a,b,c的最大值

a>b?(a>c?a:C):(b>c?b:c)

當要比較兩個數的最大值時,很是簡單。當要比較三個數的最大值是,其實可以發現已經比較複雜。很多時候要是不注意就會發生一些邏輯上的忽略,造成丟分。因此。我們說使用三目運算子的時候,最大不超過兩層巢狀,也就是說,除非結果真的很顯而易見,否則一般還是直接用if語句。

switch語句

switch語句是另一種分支結構的表現形式。主要適用於一些特定情況下的匹配狀態。比如 數字匹配或者字元匹配。其格式為:

switch(要匹配的內容){
    case 可能匹配到的狀態1:
          當匹配成功時需要寫的程式碼1
case 可能匹配到的狀態2: 當匹配成功時需要寫的程式碼2 case 可能匹配到的狀態3: 當匹配成功時需要寫的程式碼3 default: 當上面的狀態都不成功時需要寫的程式碼4 }

比如:
這裡寫圖片描述
在這個例子中,便是switch語句的一個雛形,不過和其他分支結構有點不一樣的地方在於,我們不僅是執行匹配到的程式碼,還會從該行開始,執行下面的語句,同樣,我們看一個例子:
這裡寫圖片描述
比對程式,我們發現,我們輸入的是1,switch匹配到了1之後,從第7行開始往下之行。分別無視其他的匹配條件一直往下面執行,直到switch語句結束。那如果我們要在某一個地方就不再執行這個程式碼的話,應該怎麼強制停止呢?下面就是要介紹一個更有趣的東西,叫做你媽叫你回家吃飯之——break

中斷語句。
當我們要在switch中,執行了某一個匹配項內的程式碼之後,不想繼續執行下去的時候,就直接使用break停止。格式及效果如下:
這裡寫圖片描述
所以記住,用break終止switch語句的執行。

總結注意點:

1.三目運算子符號格式要正確,不要過多巢狀
2.三目運算子的真假兩端要填的內容保持一致,左邊是怎麼寫,右邊就對應著寫
3.switch適用於匹配字元或者整型數字,不能是其他的資料型別
4.switch從匹配到的case中往下順序執行,而不是隻執行case裡面的內容
5.switch中斷需要使用break’關鍵字