本文目錄一覽:
- 1、switch語句中case後只能加什麼?
- 2、switch語句中case後可為常量或表達式和有確定值的變數及表達式嗎?
- 3、C語言中switch中的case後面可以加判斷語句嗎
- 4、x>50」;如不可以為什麼?’ title=’C語言中的switch語句,case後面可不可以跟一表達式,例如「100>x>50」;如不可以為什麼?’>C語言中的switch語句,case後面可不可以跟一表達式,例如「100>x>50」;如不可以為什麼?
- 5、在C中switch語句中,case後面可以為任何量或表達式對嗎
- 6、C語言的switch語句中case後()
switch語句中case後只能加什麼?
case標籤(case後)必須是常量表達式(constantExpression),如42或者’4’。
case標籤(case後)必須是惟一性的表達式;也就是說,不允許兩個case具有相同的值。
其他規則:
只能針對基本數據類型中的整型類型使用switch,這些類型包括int、char等。對於其他類型,則必須使用if語句。
switch()的參數類型不能為實型 。
擴展資料:
相關延伸:switch語句的語法如下(switch,case,break和default是關鍵字):
switch ( 變數表達式 )
{
case 常量1 :語句;break;
case 常量2 :語句;break;
case 常量3 :語句;break;
…
case 常量n:語句;break;
default :語句;break;
}
switch語句中case後可為常量或表達式和有確定值的變數及表達式嗎?
switch語句中case後可為常量或簡單的表達式(不可以有函數調用),不可以有任何的變數及變數表達式。
switch
語句必須遵循下面的規則:
switch
後的圓括弧中是一個常量表達式,必須是一個整型或枚舉類型。
在一個
switch
中可以有任意數量的
case
語句。每個
case
後跟一個要比較的值和一個冒號。
所以,case
後面必須與
switch
中的變數具有相同的數據類型,且必須是一個常量或字面量。不可以是變數,或含有變數的表達式。
C語言中switch中的case後面可以加判斷語句嗎
不能,case後面是常量表達式
——————————————————————————–
switch(表達式)
{
case
常量表達式1:
語句1;
break;
case
常量表達式2:
語句2;
break;
……
case
常量表達式n:
語句n;
break;
default:
語句n+1;
break;
}
——————————————————————————–
switch語句的執行流程是:首先計算switch後面圓括弧中表達式的值,然後用此值依次與各個case的常量表達式比較,若圓括弧中表達式的值與某個case後面的常量表達式的值相等,就執行此case後面的語句,執行後遇break語句就退出switch語句;若圓括弧中表達式的值與所有case後面的常量表達式都不等,則執行default後面的語句n+1
x>50」;如不可以為什麼?’>C語言中的switch語句,case後面可不可以跟一表達式,例如「100>x>50」;如不可以為什麼?
不可以,C語言中的switch case中的case後面僅可以跟整形常量或常量表達式。
原因:如果case後面跟 100×50是會出現邏輯錯誤的。
首先C語言中像100×50這種表達式的意義並不和數學裡的一樣表示x落在(50,100)這個區間。這個在C語言中100x會先被計算得到真或假。直接用關係運算得到的真和假在C語言中就是1或0。而1或0是始終小於50的。這就導致這個表達式的值永遠為零。
常量表達式:在計算機編程語言中,若一個表達式的值不能發生改變,則稱之為常量表達式,如C++中有整型常量,字元常量,邏輯常量,實型常量,地址常量,符號常量,這些常量組成的表達式即為常數表達式。其中含有字元常量的常量表達式可稱為字元常量表達式。
整型常量:整型常量就是通常的整數,包括正整數、負整數和0,其數據類型顯然是整型。除此之外,整型常量包括短整型、長整型和無符號型等不同類型。
擴展資料
switch語句的用法和特點:
switch的用法是判斷case後面的表達式和switch後面的表達式是否相匹配,一旦case匹配,就會順序執行後面的程序代碼,而不管後面的case是否匹配,直到遇見break。
Switch case 語句表達式為:
switch{case 常量1: 語句體1;case 常量2: 語句體2;case 常量3: 語句體3;case 常量4: 語句體4;….default : 語句體;}
當常量表達式所表達的量與其中一個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
在C中switch語句中,case後面可以為任何量或表達式對嗎
不是「任何常量或表達式」,而是「任何常量表達式」,其類型必須為整型和枚舉類型。
C語言的switch語句中case後()
選B,case後面只能是整型或字元型的常量或常量表達式。
一、switch是另外一種選擇結構的語句,用來代替簡單的、擁有多個分支的if else 語句,基本格式如下:
switch(表達式){
case 整型數值1: 語句 1;
case 整型數值2: 語句 2;
……
case 整型數值n: 語句 n;
default: 語句 n+1;
}
二、它的執行過程是:
1、首先計算「表達式」的值,假設為 m。
2、 從第一個 case 開始,比較「整型數值1」和 m,如果它們相等,就執行冒號後面的所有語句,也就是從「語句1」一直執行到「語句n+1」,而不管後面的 case 是否匹配成功。
3、如果「整型數值1」和 m 不相等,就跳過冒號後面的「語句1」,繼續比較第二個 case、第三個 case……一旦發現和某個整型數值相等了,就會執行後面所有的語句。假設 m 和「整型數值5」相等,那麼就會從「語句5」一直執行到「語句n+1」。
4、如果直到最後一個「整型數值n」都沒有找到相等的值,那麼就執行 default 後的「語句 n+1」。
擴展資料:
1、switch後面括弧內的【表達式】,ANSI標準允許它為任何類型;
2、當表達式的值與某一個case後面的常量表達式的值相等時,就執行此case後面的語句,否則,就執行default後面的語句。
3、每一個case的常量表達式的值必須互不相同,否則就會出現互相矛盾的現象(對表達式的同一個值,有兩種或多種執行方案)。
4、各個case各default的出現次序不影響執行結果。例如,可以先出現”default: …”,再出現”case ‘D’: …”,然後是”case ‘A’: …”.
5、執行完一個case後面的語句後,流程式控制制轉移到下一個case繼續執行。”case常量表達式”只是起語句標號作用,並不是在該處進行條件判斷。在執行swith語句時,根據switch後面表達式的值找到匹配的入口標號,就從此標號開始執行下去,不再進行判斷。
參考資料來源:百度百科-switch
原創文章,作者:XJXP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/143538.html