c語言中的case後不能加範圍嗎

時間 2021-08-11 17:51:00

1樓:匿名使用者

不能加。

c的語法中規定,在switch-case語句中,case關鍵字後只能跟隨整型常量或enum型別。

由於c年代久遠,故沒有一些年輕語言的一些語法糖,case加範圍就是其中之一

當然,加範圍的switch-case語句可以用多個if-else分支語句替代

int i;

//...

if (i <= 0)  else if (i > 1 && i <= 10)  else if (i <= 20)

以此類推

2樓:老拉特福德球場

其實也可以這樣:

#include using namespace std;

int main()

return 0;}

並排寫也不是不可以。

3樓:匿名使用者

不能加範圍,也不能加不等式.

也就是說case後面是一個確實固定的常量.

4樓:蘿蔔青菜的城堡

case 1:

case 2:

....

case 10:

break;

附:case後面不能用float型別

5樓:匿名使用者

並列寫,如下:

case 1:

case 2:

case 3:

.........

case 10:

break;

c語言中switch case怎麼表示一個範圍

6樓:凌亂心扉

1、當判斷整數時

示例:判斷整數範圍

#include

int main()

;for(int i=0;i<6;i++)switch(buf)

}2、當判斷字元時

示例:將"0x00"~"0xff"轉化為數值0x00~0xff#include

int main()

;for(int i=0;i<6;i++)if(buf[0]=='0'&&(buf[1]=='x'||buf[1]=='x'))//匹配字首

if(!err)

printf("buf[%d]=0x%02x\n",i,val);

else

printf("buf[%d]err\n",i);

}else

printf("buf[%d]err\n",i);}

7樓:匿名使用者

1、首先開啟c-free5.0,然後一個空白的c語言頁面儲存為switch.c檔案,繼續輸入一回般的c語言的答基礎格式。

2、c語言的輸入語句,首先定義一個整型數值,然後從外面寫入這個值。#include main()這裡的scanf() 就是從外面讀入一個值給a。

3、要看下輸入的值是不是賦值給了a,可以把a的值輸出,如下圖除錯。從下圖可以得出,a的值就是輸入的值。

4、接著按照獲得的值來執行相應的步驟,**如下圖。

5、從系統中輸入一個數值,然後switch根據讀到的數值判斷應該做什麼,注意,輸入的值必須是定義的值,就比如本程式裡面switch裡面是一開始定義的a.int a;printf("請輸入一個1-5之間的數值: ");scanf("%d",&a);switch (a){}除錯下程式,看看對不對。

8樓:文化廚子

使用多個case疊加即可。比如下面的**,當輸入字元為+、a、或者大寫字回母a時,都可以呼叫答f_add()。

#include

void f_add(void)

void f_sub(void)

void f_mul(void)

void f_div(void)

int main()

return 0;}

9樓:藍筆小鑫

#define min1 5

#define max1 15

#define min2 15

#define max2 20

void switch_range()

//方法② 另一種常用方法是將其 “/5取商” 常量判斷int x;

switch(x/5)}

10樓:金色潛鳥

表示若干個範圍,而且範圍無規律,最好用條件語句,方便靈活。

-------------------

90以上專是a,80到90是b,70到80是c 這種特屬殊情況,正好以10分為一檔,所以它可以把分數除以10,湊成 9,8,7,6,....,於是可以用開關語句。

switch( make/10)

**********==

除以5的話

switch( make/5)

11樓:新在期待

switch case 只能是具體的條件,不能是範圍,。

如switch

case temp=90輸出a

c語言 用switch case如何表示一個範圍?

12樓:匿名使用者

1、首先開啟c-free5.0,然後一個空白的c語言頁面儲存為switch.c檔案,繼續輸入一般的c語言的基礎格式。版

2、c語言的輸入語句權,首先定義一個整型數值,然後從外面寫入這個值。#include main()這裡的scanf() 就是從外面讀入一個值給a。

3、要看下輸入的值是不是賦值給了a,可以把a的值輸出,如下圖除錯。從下圖可以得出,a的值就是輸入的值。

4、接著按照獲得的值來執行相應的步驟,**如下圖。

5、從系統中輸入一個數值,然後switch根據讀到的數值判斷應該做什麼,注意,輸入的值必須是定義的值,就比如本程式裡面switch裡面是一開始定義的a.int a;printf("請輸入一個1-5之間的數值: ");scanf("%d",&a);switch (a){}除錯下程式,看看對不對。

13樓:匿名使用者

需要你按照題意,將輸入的情況用有限的整數形式來概括表示。

14樓:殳禮戶亥

#define min1 5

#define max1 15

#define min2 15

#define max2 20

void switch_range()

//方法② 另一種答

常用方法是將其 “/5取商” 常量判斷

int x;

switch(x/5)}

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

15樓:愛夏的你呀

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

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

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

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

擴充套件資料

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

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

16樓:起個名好難

不可以,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是或的關係。

17樓:匿名使用者

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

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

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

  #includeint main()      } 像你的50

18樓:匿名使用者

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

19樓:匿名使用者

100>x&&x>50

c語言中char的用法,C語言中char的用法

會飛的小兔子 include intmain inti charc 定義乙個char型別的變數。c a 賦值 for i 0 i 26 i printf c c 輸出乙個字元用 c,c charc增加1,依次可以得到 abcdef。zprintf n if c z printf stillasmal...

c語言中的strlen函式,C語言中的strlen函式

冰 vs 霰 strlen是測量字串長度的 char d 和char a china char b 是等價的 是陣列的表示形式 而char c 卻是字元陣列所以並不能得到結果 strlen函式測量字串中字元個數,不包括結尾的 0 字元,你的 char c沒有結尾的 0 不是合法的字串,所以結果不對 ...

C語言中產生隨機數,C語言怎樣產生一定範圍的隨機數?

巧金蘭嵇嫣 樓上這樣得出的隨機值不準確,不信你執行幾次試試,都是同一個數。正確應該這樣。首先加標頭檔案 include include 然後在主函式裡面寫 inti srand time 0 i rand 100 1 printf d i 隨機數主要有兩個函式 一個種子產生函式 void srand...