switch case的用法,Switch case 語句怎麼使用

2021-05-23 17:14:50 字數 5242 閱讀 5195

1樓:苑

switch case的用法如下:

1、switch用在程式設計中,如c語言中它經常跟case一起使用,是一個判斷選擇**。其功能就是控制流程流轉的。直線翻譯:switch語句,即「切換」語句;case即「情況」。

2、switch 語句一行接一行地執行(實際上是語句接語句)。開始時沒有**被執行。僅當一個 case 語句中的值和 switch 表示式的值匹配時 php 才開始執行語句,直到 switch 的程式段結束或者遇到第一個 break 語句為止。

如果不在 case 的語句段最後寫上 break 的話,php 將繼續執行下一個 case 中的語句段。

3、在 switch 語句中條件只求值一次並用來和每個 case 語句比較。在 elseif 語句中條件會再次求值。如果條件比一個簡單的比較要複雜得多或者在一個很多次的迴圈中,那麼用 switch 語句可能會快一些。

4、switch語句執行時會從上到下根據括號中表示式的值作比較,當某個case語句中的表示式與此值相同時,就執行這個case語句或語句序列,直到遇到break為止。

2樓:高嘉文

樓主請聽如下解答

首先是switch case 的結構

switch(表示式)

看到這裡,你就可以知道里面可以寫什麼不可以寫什麼,首先是switch括號裡面是表示式,表示式在c語言中有許多種邏輯表示式 算數表示式 關係表示式 賦值表示式 條件表示式等等在c中表示式就有九種具體可以查閱譚浩強的c語言程式設計。

第二就是 case注意 case後面只能接常量表示式,常量顧名思義就是不會變的量如1,2,3 'a' 'b'等等,然後就是語句,語句也有許多種表如算術的,函式呼叫語句,等等c語言中關於語句也有總結和定義你也可以查閱,這語句可以是若干句而不僅僅是一句。值得注意的是每一項case後面的語句後如果沒有接break語句,會接著執行後面的case,這樣可能會達不到你執行的效果所以要注意需要的時候每項case之後的語句要加上break

最後是default,default是指在匹配case的常量表示時沒有一項匹配這時是執行default後面的語句的。

3樓:匿名使用者

c/c++中switch-case用法歸納

if語句

處理兩個分支,處理多個分支時需使用if-else-if結構,但如果分支較多,則巢狀的if語句層就越多,程式不但龐大而且理解也比較困難.深層巢狀的else-if語句往往在語法上是正確的,但邏輯上卻沒有正確地反映程式設計師的意圖。例如,錯誤的else-if匹配很容易被忽略。

新增新的條件和邏輯關係,或者對語句做其他的修改,都很難保證正確性。因此,c/c++語言又提供了一個專門用於處理多分支結構的條件選擇語句,稱為switch語句,又稱開關語句.它可以很方便地來實現深層巢狀的if/else邏輯。

使用switch語句直接處理多個分支(當然包括兩個分支).其一般形式為:

switch(表示式)

switch語句的執行流程是:首先計算switch後面圓括號中表示式的值,然後用此值依次與各個case的常量表示式比較,若圓括號中表示式的值與某個case後面的常量表示式的值相等,就執行此case後面的語句,執行後遇break語句就退出switch語句;若圓括號中表示式的值與所有case後面的常量表示式都不等,則執行default後面的語句n+1,然後退出switch語句,程式流程轉向開關語句的下一個語句.

以上是switch-case的正規寫法,default語句總是寫在最後。但是,如果把default語句間在了case的中間,執行的結果又是怎樣的呢?筆者測試了一下幾種有代表性的情況,把結果簡單羅列如下:

a. 每個語句中break齊整

switch(c)

此種情況最為規整,default寫在中間跟寫在最後的效果一致。

b. default語句後沒有break

switch(c)

此種情況下,輸入分別為 1、 2、 3、 4,對應的輸出分別為 1、 2 、3、 default 2(換行省略了,實際執行時有換行的);即此種情況下遵循a中的執行順序和一般的標號規則。

c. 最後一個case沒有break

switch(c)

此種情況下,輸入分別為 1、 2、 3、 4,對應的輸出分別為1、2、3、default.可見實際的執行效果並不等同於把default語句挪到最後的執行效果。否則,輸入為3時,輸出應該為 3 default.

d. default和最後一個case都沒有break

switch(c)

由上面a,b,c三種情況的執行結果,我們可以推測出d這種情況的執行結果。當輸入分別為 1、2、3、4時,輸出為1、2、3、default 2. 結果與b的情況相同。

4樓:

switch (x/1000)說明:

5樓:爺_浪跡tian涯

switch 語句用法

功能:switch語句是多分支選擇語句.用來實現多分支選擇結構.

if語句只有兩個分支可供選擇,而實際問題中常常要用到多分支的選擇.例如,學生成績分類(90為"a"等,80-89分為'b'等,70-90分為'c'等......).

當然這些都可以用巢狀的if語句來外理,但如果分支較多,則巢狀的if語句層數多,程式沉餘長而且可讀性降低.c語言提供switch語句直接外理多分支選擇,它相當於pascal語言中的case語句.

形式:switch(表示式)

例如,要求按照考試成績的等級列印出百分制分數段,可以用switch語句實現:

switch(grade)

說明:(1) switch後面括弧內的"表示式",ansi標準允許它為任何型別.

(2) 當表示式的值與某一個case後面的常量表示式的值相等時,就執行此case後面的語句,若所有的case中的常量表示式的值都沒有與表示式的匹配的,就執行default後面的語句.

(3) 每一個case的常量表示式的值必須互不相同,否則就會出現互相矛盾的現象(對表示式的同一個值,有兩種或多種執行方案).

(4) 各個case各default的出現次序不影響執行結果。例如,可以先出現"default: ...

",再出現"case 'd': ...",然後是"case 'a':

...".

(5) 執行完一個case後面的語句後,流程控制轉移到下一個case繼續執行."case常量表示式"只是起語句標號作用,並不是在該處進行條件判斷.在執行swith語句時,根據switch後面表示式的值找到匹配的入口標號,就從此標號開始執行下去,不再進行判斷.

例如,上面的例子中,若grade的值等於'a',則將連續輸出:

85-100

70-84

60-69

<60error

因此,應該在執行一個case分支後,使流程跳出switch結構,即終止switch語句的執行.

可以用一個break語句來達到此目的.將上面的switch結構改寫如下:

switch(grade)

最後一個分支(default)可以不加break語句.如果grade的值為'b',則只輸出"70-84".

在case後面中雖然包含一個以上執行語句,但可以不必用花括弧括起來,會自動順序執行本case後面所有的執行語句.當然加上花括弧也可以.

(6) 多個case可以共用一組執行語句,例如:..

.case 'a':

case 'b':

case 'c': printf(">60\n");break;..

.grade的值為'a','b'或'c'時都執行同一組語句.

6樓:

在switch(exp)中,exp只能是整數表示式或者列舉常量。

整數表示式可以是int基本

型別或integer包裝型別,因為byte,short,char都可以隱含轉換為int,所以這些型別以及這些型別的包裝型別也是可以的。

long和string型別都不符合switch語法的規定,並且不能隱式的轉換成int型別,所以它們不能作用於switch語句中。

switch(grade)

在switch-case語句中,多個case可以共用一條執行語句,如:

......

case 'a':

case 'b':

case 'c':

printf(">60\n");

break;

......

7樓:veket的小號

什麼都可以寫 沒有什麼不可以寫的

8樓:周生

必須是整數或者字母

字母其實也是整數

9樓:顧鯤隨冷雪

可以有多句,用{}擴起來就行了

,最好把break放括號外面

10樓:徐茹臧帆

intmain(int

argc,

char

**argv)

floatx=

0;switch

(argv[1])

printf("%f\n",

x);}

switch case 語句怎麼使用

11樓:楓璽

switch的用法是判斷case後面的表示式和switch後面的表示式是否相匹配,一旦case匹配,就會順序執行後面的程式**,而不管後面的case是否匹配,直到遇見break。

switch case 語句表示式為:

switch

當常量表示式所表達的量與其中一個case語句中的常量相符時,就執行此case語句後面的語句,並依次下去執行後面所有case語句中的語句,除非遇到break;語句跳出switch語句為止。如果常量表示式的量與所有case語句的常量都不相符,就執行default語句中的語句並跳出switch語句。

擴充套件資料

switch ...  case語句的特點:

1、把要討論的表示式與case後面的常量進行比較,發現匹配項之後,從該位置入口,做它下面的所有語句。

2、case 後面的常量不能重複

3、可以在每一個case語句的後面加上break語句,這樣就能保證只做與之相匹配的那一項。

4、break實質:在switch ...case語句裡面最先遇到那一個break就從該位置結束該語句

5、可以在最後一個case的下面加上default語句表示如果找不到匹配項時,就做default對應的項。

6、default並不是一定要有,如果前面遇到break,default就不執行。如果沒有遇到break,就一定會執行。

7、case後面的語句可以不執行,表示與下一個case是或的關係。

switch case裡的case能夠case 1,2,3嗎

只能寫成 case 1 case 2 case 3 break 是三種情況都要執行的語句 在c 中使用switch 如果case 1,case 2,case 3執行的動作一模一樣,case 4和以上三種情況不一樣 這樣就可以了 case 1 case 2 case 3 fun break 因為cas...

c語言的switchcase語句的case常量能匹配字串

c語言的switch case 語句的case不能匹配字串常量,只能匹配整型類常量,如int short long char.switch用法格式 switch 表示式 說明 break 表示退出 case後面只能跟一個值 加冒號 而不能是一個表示式switch 表示式 後面沒有分號 前後沒有分號 ...

球衣比sw版好的還有什麼,球衣SW與AU的區別

球衣主要分為球迷版bai與球員版。球迷版du有rep replica jersey 與sw swinman jersey 之分,zhirep是膠印,daosw是單層電繡,略好於專rep。球員版被稱屬為au authentic jersey 即多層刺繡球員版。與nba球員比賽時穿的是一樣的。最近adi...