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 會飛的小兔子 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... 冰 vs 霰 strlen是測量字串長度的 char d 和char a china char b 是等價的 是陣列的表示形式 而char c 卻是字元陣列所以並不能得到結果 strlen函式測量字串中字元個數,不包括結尾的 0 字元,你的 char c沒有結尾的 0 不是合法的字串,所以結果不對 ... 巧金蘭嵇嫣 樓上這樣得出的隨機值不準確,不信你執行幾次試試,都是同一個數。正確應該這樣。首先加標頭檔案 include include 然後在主函式裡面寫 inti srand time 0 i rand 100 1 printf d i 隨機數主要有兩個函式 一個種子產生函式 void srand...c語言中char的用法,C語言中char的用法
c語言中的strlen函式,C語言中的strlen函式
C語言中產生隨機數,C語言怎樣產生一定範圍的隨機數?