問題:
break在for迴圈、while迴圈等迴圈流程控制中起的作用是停止執行bregcpmdmxgjeak後面的語句,跳出本次迴圈,並跳出該迴圈控制體;
在switch條件選擇中,沒有了迴圈控制,break又起什麼作用呢?
解決辦法:
1. switch語句的執行流程是:
首先計算switch後面圓括號中表示式的值,然後用此值依次與各個case的常量表示式比較,
若圓括號中表示式的值與某個case後面的常量表示式的值相等,就執行此case後面的語句,執行後遇到break語句就退出switch語句,程式流程轉向開關語句的下乙個語句;
若圓括號中表示式的值與所有case後面的常量表示式都不等,則執行default後面的語句,然後退出switch語句,程式流程轉向開關語句的下乙個語句。
在switch-case語句中,多個case可以共用一條執行語句,如:
case 常量表示式1:
case 常量表示式2:
case 常量表示式3:
語句;
break;
由此可以看出case語句的作用:
ca後面的常量表示式實際上只起語句標號作用,而不起條件判斷作用,即「只是開始執行處的入口標號www.cppcns.com」。
因此,一旦與switch後面圓括號中表示式的值匹配,就從此標號處開始執行;
而且執行完乙個case後面的語句後,若沒遇到break語句,就自動進入下乙個case繼續執行,而不再判斷是否與之匹配,直到遇到break語句才停止執行,退出switch語句。
因此,若想執行乙個case分之後立即跳出switch語句,就必須在此分支的最程式設計客棧後新增乙個break語句。
2. 從上面的描述可以看出,switch條件選擇語句中的break的作用跟迴圈控制語句中的作用基本相同:
都是不執行break之後的語句,並結束www.cppcns.com退出switch語句;
3. 與迴圈控制中存在continue語句不同的是,switch條件選擇語句中沒有continue語句;
ok問題解決。
本文標題: 解析c語言switch中break語句的具體作用
本文位址:
C語言switch語句
switch語句 switch 表示式 case 常量表示式 1 語句1 case 常量表示式 2 語句2 case 常量表示式 n 語句n default 語句 n 1 說明 1 switch後面括號內的表示式,其值可以使整形 字元型 列舉型資料 2 應該在執行乙個case 分支後,使流程跳出 s...
C語言switch語句
既然有了if else 組合為什麼還需要switch case 組合呢?那你既然有了菜刀為什麼還需要水果刀呢?你總不能扛著雲長的青龍偃月刀 又名冷豔鋸 去削蘋果吧。如果你真能做到,關二爺也會佩服你的。if else 一般表示兩個分支或是巢狀表示少量的分支,但如果分支很多的話 還是用switch ca...
C語言switch 中default子句的作用
c語言switch 中default子句的作用 首先來想一下,在switch語句中,如果表示式的值與所有的case標籤的值都不匹配怎麼辦?其實也沒什麼 所有語句不過是跳過而已。程式並不會終止,也不會提示任何錯誤,因為這種情況下在c中並不認為是個錯誤。但是,如果你並不想忽略所有case標籤的表示式值時...