switch語句,switch後的表示式和case後的常量表示式,可以是範圍麼

2021-04-17 21:09:06 字數 4698 閱讀 1731

1樓:4終

1、首先使用switch語句,switch語句中,用表示的部分是可選項,如下圖所示。

2、合法的switch語句的表示式,其值只能取整型、字元型、布林型、列舉型資料,如下圖所示。

3、常量表示式由常量組成,其取值型別要與switch後的表示式型別相同。

4、任意兩個case語句後的常量值不能相同,否則程式不能正常執行。

5、語句組中,可以是乙個語句,也可以是一組語句。

6、程式執行時,首先計算switch後的表示式有值。如果語句中包含default命令,表示當各分支常量表示式的值都無法匹配時,執行default後的語句組,通常default語句放在程式的最後面。

2樓:顧小蝦水瓶

可以是。switch後面的表示式或變數表示的是有很多種取值的量,而case後的常量值就是switch的變數可能取到的值得一種。

一般格式:

switch (表示式)

{case 常量標號1:語句序列1;

break;

case 常量標號2:語句序列2;

break;

…case 常量標號n:語句序列n;

break;

default: 語句s;}

3樓:百文e見

這個不知道你是什麼意思,switch後面的表示式或變數表示的是有很多種取值的量,而case後的常量值就是switch的變數可能取到的值得一種

c語言中的switch語句,case後面可不可以跟一表示式,例如「100>x>50」;如不可以為什麼?

4樓:愛夏的你呀

不能,case後面是常量表示式。

要注意 case 表示式裡各個分支返回的資料型別是否一致。某個分支返回字元型,而其他分支返回數值型的寫法是不正確的。

使用 case 表示式的時候,最容易出現的語法錯誤是忘記寫 end 。雖然忘記寫時程式會返回比較容易理解的錯誤訊息,不算多麼致命的錯誤。而執行時卻出錯的情況大多是由這個原因引起的。

case表示式的執行結果是 null 。但是不寫可能會造成"語法沒有錯誤,結果卻不對"這種不易追查原因的麻煩,所以寫上 else 子句(即便是在結果可以為 null 的情況下)。

擴充套件資料

1、case表示式的真假值判斷就會中止,而剩餘的 when子句會被忽略。為了避免引起不必要的混亂,使用 when子句時要注意條件的排他性。

2、當case後的表示式的值與switch表示式的值相等時, 即執行對應case後的語句,然後不再進行判斷,繼續執行後面所有case後的語句。如表示式的值與所有case後的常量表示式均不相同時,則執行default後的語句。

5樓:起個名好難

不可以,c語言中的switch case中的case後面僅可以跟整形常量或常量表示式

原因:如果case後面跟 100>x>50是會出現邏輯錯誤的。

首先c語言中像100>x>50這種表示式的意義並不和數學裡的一樣表示x落在(50,100)這個區間。這個在c語言中100>x會先被計算得到真或假。直接用關係運算得到的真和假在c語言中就是1或0。

而1或0是始終小於50的。這就導致這個表示式的值永遠為零。

常量表示式:在計算機程式語言中,若乙個表示式的值不能發生改變,則稱之為常量表示式,如c++中有整型常量,字元常量,邏輯常量,實型常量,位址常量,符號常量,這些常量組成的表示式即為常數表示式。其中含有字元常量的常量表示式可稱為字元常量表示式。

整型常量:整型常量就是通常的整數,包括正整數、負整數和0,其資料型別顯然是整型。除此之外,整型常量包括短整型、長整型和無符號型等不同型別。

擴充套件資料

switch語句的用法和特點:

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是或的關係。

6樓:匿名使用者

switch語句非常有用,但在使用時必須謹慎。所寫的任何switch語句都必須遵循以下規則:   只能針對基本資料型別使用switch,這些型別包括int、char等。

對於其他型別,則必須使用if語句。   case標籤必須是常量表示式(constantexpression),如42或者"42"。如果需要在執行時計算case標籤的值,必須使用if語句。

  case標籤必須是惟一性的表示式;也就是說,不允許兩個case具有相同的值。   c語言switch應用例子:   例一:

  #includeint main()      } 像你的50

7樓:匿名使用者

不可以,case後面需要跟乙個常量。如果你想要實現以範圍區分,可以使用多個if語句來實現。

8樓:匿名使用者

100>x&&x>50

c語言switch語句中case後面必須要接整型常量和字元型常量嗎

9樓:文化廚子

是的,case語句來

後面的必須是整型常

源量!整型常量有多種,比如int、char、enum列舉常量,在c++中bool型別也屬於整型常量的一種。

//一般switch語句使用此種格式

switch(表示式)

switch是乙個整型表示式。case是乙個整數常量表示式。只所以不能使用浮點數,個人理解應該是浮點數的精度問題不容易把握,在一定誤差內可能出現多個匹配,而且浮點數對硬體依賴要求比較高,**可移植性可能會更低。

10樓:匿名使用者

只能針對基本資料型別使用switch,這些型別包括int、char等

這個是使用switch的要求哦

switch語句後的表示式的值是哪些型別

11樓:屠龍阿九

switch用在程式設計中,如c語言中它經常跟case一起使用,是乙個判斷選擇**。其功能就是控制業務流程流轉的。

switch語句,即「切換」語句;case即「情況」。

switch語句的語法如下(switch,case和default是關鍵字):

switch ( controllingexpression )

12樓:尚學堂科技****

byte. short. int . char . boolean . string

13樓:母韶郝岑

一般格式:

switch

(表示式)

{case

常量標號1:語句序列1;

break;

case

常量標號2:語句序列2;

break;

…case

常量標號n:語句序列n;

break;

default:

語句s;

}其中:

①表示式:可以控制程式的執行過程,表示式的結果必須是整數、字元或...

在c++的switch語語句中,如果乙個case語句和switch表示式的值相等並且這個case後

14樓:匿名使用者

首先bai,編譯程式會判斷du你的case語句中不會出現完全相同zhi的值,則

case 1: ...

case 1: ...

這樣的就dao算是語法錯誤

switch的表專達式應當是屬包含變數的表示式,不可以是常量,比如switch ( n )

如果沒有break,程式不會計算後面的條件,會順序執行的,如

case 0: 語句0; break;

case 1: 語句1;

case 2: 語句2; break;

case 3: 語句3;

如果滿足n=1,會執行語句1,然後執行語句2(此時不會進行case 2的判斷),接著執行break跳出switch語句

如果變數n的值等於2,會執行語句2,然後執行break跳出switch,不會執行語句3的原因是case 2的最後寫了個break語句

c語言switch語句中case後是常量表示式 為什麼有的後面沒有寫任何語句序列?什麼意思

那就是什麼都不執行,相當於空語句,空語句在哪都適用,望採納 switch i 嗎?這種寫法是把012這三種情況綜合起來 c語言中用switch語句的時候,為什麼有些case後面沒有語句?c語言中 switch語句其實每個case都會判斷的,所以要用break跳出有時候兩個不同的case需要做相同的處...

C語言,分別用if語句和switch語句編寫程式求分段函式

if語句 inlcude include define a 10 a自己取值 void main switch語句 include include define a 10 a自己取值 void main matlab分段函式用switch程式設計 不要if語句的 50 clear a input i...

switch買那種版本的好,switch選擇哪個版本好

有一款新出的續航增加版本,就是貴。還有一些熱門遊戲同色系版本,回贈送熱門遊戲,但羊毛出在羊身上,都差不多 switch選擇哪個版本好 switch不鎖區,所以你買的不管哪個版本,都可以隨便調語言,隨便玩各種地區的遊戲。我沒見過歐版,日版和港版只有電源有不同,港版是那種香港的電源,必須需要乙個轉換頭才...