C 中如何讓case包含多種情況

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

1樓:暢凌文佔易

case後面必須跟常數表示式,不能使用邏輯判斷條件。不過你可以把多個case放在一起用,例如

case

1:case

2:case

3:執行操作

break;

2樓:霜丹秋興寧

上面的寫法本身就有問題,要想用乙個語句處理多種case可以這樣寫:switch(a)

而對於提問者的寫法,機器是這樣理解的:假設a=0,那麼由於表示式

1<=a&&a<=3是乙個bool表示式,所以當a=0時,該bool表示式是1<=a&&a<=3的值為「假」,在c語言中就是0,正好與a的只相同,所以程式會執行這個case語句後面的**,很明顯這與提問者的本意是矛盾的;因此要想用乙個語句處理多個case只能按照剛才給出的事例**那樣寫。

3樓:黨青雪杞逸

乙個case裡面再巢狀if語句就行了。case1<=a&&a<=3:這是不行的。

case後必須跟乙個確切的數值,所以大多數情況下大家都是用幾個if語句並列使用,case不是很有用。如果你想讓a=1,2,3的時候達到同乙個結果,可以case

1:case

2:case

3:……;break;這樣就行了。

c++中如何讓乙個case包含多種情況

4樓:匿名使用者

乙個case裡面再巢狀if語句就行了。case 1<=a&&a<=3:這是不行的。

case後必須跟乙個確切的數值,所以大多數情況下大家都是用幾個if語句並列使用,case不是很有用。如果你想讓a=1,2,3的時候達到同乙個結果,可以case 1:case 2:

case 3:……;break;這樣就行了。

5樓:匿名使用者

case後面必須跟常數表示式,不能使用邏輯判斷條件。不過你可以把多個case放在一起用,例如

case 1:

case 2:

case 3:

執行操作

break;

6樓:匿名使用者

上面的寫法本身就有問題,要想用乙個語句處理多種case可以這樣寫:switch(a) 而對於提問者的寫法,機器是這樣理解的:假設a=0,那麼由於表示式 1<=a&&a<=3是乙個bool表示式,所以當a=0時,該bool表示式是1<=a&&a<=3的值為「假」,在c語言中就是0,正好與a的只相同,所以程式會執行這個case語句後面的**,很明顯這與提問者的本意是矛盾的;因此要想用乙個語句處理多個case只能按照剛才給出的事例**那樣寫。

c++中 switch語句的各個case分支可以有多條語句,舉例說明什麼是多條語句

7樓:匿名使用者

switch語句的各個case分支可以有多條語句,應該是指兩方面:一方面是指switch後面可以跟多個case...語句,另外一內方面,指每個case中,容可以是乙個多行語句構成的復合**,而不是僅僅能夠寫一行**。

例如:switch(n)

8樓:匿名使用者

樓上已經說得很好了

case遇見break就跳出,否則一直往下執行

9樓:匿名使用者

對不同的分數斷輸出不同提

示資訊,改用switch語句來實現。

main()}

c++case語句中有兩個情況,即case1和case2,每個情況有乙個for迴圈,怎麼把兩

10樓:匿名使用者

如果迴圈寫的一模一樣還好說,不一樣就不太好弄了:

switch(something)

break;}

11樓:匿名使用者

把**貼上吧,我覺得能合併的可能性不大。

在c++中使用switch 如果case 1,case 2,case 3執行的動作一模一樣,case 4和以上三種情況不一樣

12樓:it孤鶩

這樣就可以了

case 1:

case 2:

case 3: fun();break;

因為case 後面只能跟整數 ,

所以只有上面那專樣寫,case 1,case  2 可以不實現,case 實現功能就可屬以了

簡單測試例子

#include

void main()}

13樓:匿名使用者

在復c++中使用switch,如果case 1,case 2,case3執行的制動作一模一樣,case 4和以上三種情況不一樣,那麼我們可以這樣寫**:

switch(表示式){

case 值1:;

case 值2:;

case 值3:執行動作語句 break;

case 值4:執行動作語句 break ;

...default : 執行動作語句 break;

}也就是case 1,case 2後面跟空語句,不必使用break。關鍵字break表示結束switch語句。當switch後面的表示式匹配某個case後面的值時,就會從那行語句開始往下依次執行,直到碰見break結束。

因此,當表示式的值等於值1,值2或者值3時,都會執行值3後面的動作語句。

這樣子做的好處就是可以減少**書寫量。

14樓:庚琰

switch()

15樓:匿名使用者

case 1:

case 2:

case 3: fun();break;

c/c++中的switch case 語句是怎樣的乙個執行過程

16樓:匿名使用者

c語言中switch語句中bai

,只要不出現break,所有du滿足條件的,都會zhi將結果輸出。dao舉例如下:

switch(i)

17樓:匿名使用者

關鍵點在你的break那裡,如果不加的話,當i=1時,他會執行到i=2那一行才結束的,還有一種是最惡搞的goto語句,一般都很坑人的,你可以試試

18樓:哎呀

基本bai等效於if-elseif-else,在實質上,也du就是zhi說,**譯成機器dao二進碼後,也許根本就沒有不

內同。容

c語言的很多語句都是可以代用和換用的,之所以有多種寫法,那只是為了程式設計師方便,也為了**的可讀性和可查對校正性。

就象我們生活中,對某事的描述可以用不同的詞句一樣。

事實上switch case就是對多分支的條件判斷進行的方便性的寫法。

19樓:匿名使用者

你理解的是正確的,switch case語句完全可以用if else語句來替換掉;但是當比較較多 或者很多回其他控制流答程的時候,switch語句 的可讀性比if else語句高的多;另外注意的就是 一般情況下每乙個case 之後都要跟乙個break; 其目的是為了跳出switch語句塊去執行switch後邊的語句;但是實際專案中多出現這種情況

switch(i)

類似於上邊的這種邏輯 如果用if else語句控制起來就會很麻煩,且可讀性太差,而用switch語句就更加簡潔直觀,可讀性也更強

20樓:***x櫻

是的,就是你說的那樣比較

這個比if看起來更直觀,可讀性也更強,尤其是情況比較多的時候

C 中如何讓case包含多種情況

乙個case裡面再巢狀if語句就行了。case 1 a a 3 這是不行的。case後必須跟乙個確切的數值,所以大多數情況下大家都是用幾個if語句並列使用,case不是很有用。如果你想讓a 1,2,3的時候達到同乙個結果,可以case 1 case 2 case 3 break 這樣就行了。 cas...

C 中關於case中for迴圈的問題

這是由於vc 和標準不一致造成的,我們來考察程式中那個for語句中的i的作用域,按照標準,在for的初始化部分宣告的變數作用域應該在for中,而vc 把這個變數的作用域擴充套件到for所在的層次,就是說在for之後也是可以使用的,那麼按照去掉大括號的程式,i的作用域是從宣告之處到switch的大括號...

c語言巨集定義中可以檔案包含另c源程式嗎

吉祥二進位制 c語言檔案包含的預處理命令是 include。從純粹的文字檔案來說,include的作用就是搜尋它後面指示的檔案,並把這個檔案的內容加到當前的檔案中。一般程式設計時,都是包含一些與.h為字尾的標頭檔案,但是它可以包含任何字尾的任何形式的text檔案的,而不僅僅是.h為字尾的標頭檔案,也...