C語言 switch語句中沒有break的情況?如圖,明明grade與case3之後的case都

2021-05-26 01:53:40 字數 4639 閱讀 6510

1樓:孟羽然

匹配到某一個case後,若該case的分值沒有break語句,則會繼續執行下一個case分值。直到遇到第一個break,或者整個swith語句執行完。

2樓:彩虹島

正是因為沒有break ,所以接下來會順序執行,匹配了3之後,因為沒有break,會按順序執行,和前面的case幾無關了。

c語言問題,沒有break的switch語句該怎麼執行?

3樓:陽光上的橋

如果沒有break語句,一旦進入一個case分支之後,會一直執行下面所有的case分支,哪怕不滿足case條件。

4樓:暮光曉磊

1%2是1,執行了case1語句。因為case0後面沒有break,所有如果switch判斷框裡面是0的話會執行case0後和case1後的語句。

switch語句中,case後面的語句序列中一定要有break語句嗎?

5樓:匿名使用者

不一定的。

switch 語句一行接一行地執行(實際上是語句接語句)。開始時沒有**被執行。僅當一個 case 語句中的值和 switch 表示式的值匹配時才開始執行語句,直到 switch 的程式段結束或者遇到第一個 break 語句為止。

如果不在 case 的語句段最後寫上 break 的話,**將繼續執行下一個 case 中的語句段,因此,break語句的新增需要根據程式的邏輯來選用,如果有需要程式執行連續執行符合條件的case中的**,則不應該新增break而使得程式結束跳出。

擴充套件資料:

switch語句規則:

1、只能針對基本資料型別中的整型型別使用switch,這些型別包括int、char等。對於其他型別,則必須使用if語句。

2、switch()的引數型別不能為實型 。

3、case標籤必須是常量表示式(constantexpression),如42或者'4'。

4、case標籤必須是惟一性的表示式;也就是說,不允許兩個case具有相同的值。

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

switch ( 變數表示式 )

6樓:匿名使用者

在 switch 語句中使用break語句將終止語句的序列。當遇到 break語句時,程式將整個 switch 語句後面的一行**處開始執行,就有一種跳出switch 語句的效果。

break 語句是可選的,如果省略掉break 語句程式將執行下一條 case ,如果你需要使用多條 case ,你可以不用沒有 break 語句。

switch 語句的使用在多選擇的時候要比 if else 執行效率要高。

7樓:匿名使用者

最好跟上。因為switch的工作原理,一旦發現匹配,就一直執行,不在判斷。

例int a=2

switch(a)

如若不加break,switch發現2匹配,首先執行printf("2");

然後再不判斷,

printf("3");

printf("4");

也執行了。這應該不是你的本意吧。所以最好每個case後面都加break。

8樓:匿名使用者

可以不有,那有幾個case就會執行幾個。舉個例子:switch(k),case1:

case2:case3假如有這3個case,如果沒有break,當k=1時,這三個都會執行,當每個都有break時,k=1時,case2, case3就不會執行。

9樓:匿名使用者

你知道break的意思嗎?如果沒有break,程式還會繼續走後面的判斷

關於c語言switch語句的break問題

10樓:匿名使用者

如果一個case後面沒有break,那麼程式將順次執行它下面的case,直到遇到break或switch語句的右大括號「}」為止。這樣做提供了為幾種情況設定共同的處理**的便利。

11樓:旁白役

c語言的baiswitch語句是穿

透的= = 也就du是說當程式zhi

判斷某個case的條件為dao

真後,它將在執行專該case所帶的的語句塊之後屬不再對後面的case的條件進行判斷而直接執行。所以將第一個break去掉並輸入0之後程式判斷第一個case的條件為真,輸出e,再繼續執行第二個case後的語句,又輸出e,之後遇到break語句退出switch結構。所以輸出是兩個e。

12樓:匿名使用者

break;其作用大多情況下是終止上一層的迴圈第一個case 0 列印一個e都沒有跳出,繼續執行case 1 又列印一個e,

break就直接跳出。

所以列印ee

13樓:匿名使用者

case語句這樣執行

的:先進入swtich,匹配找到第一個符合條件的case語句,執行回完這條case語句後,答繼續往後執行,如果沒有break,它就會繼續完後執行,直到遇到break或者switch結束。

不信你試試,把所有的break都去掉,輸入0,你會看到所有的都輸出了!

所以在寫case語句的時候要記住,每條case語句之後一定要加上break,否則後面的全部都會被執行。

14樓:匿名使用者

它執行了

case 0 :printf("e");

case 1 :printf("e");break;

這兩句,所以會有兩個e.

當程式從case 0:進入的時候,要遇到break才會跳出switch

c語言裡switch語句為什麼case後面有的加break有的不加?

15樓:匿名使用者

case後面的常量表示式實際上只起語句標號作用,而不起條件判斷作用,即「只是開始執行處的入口標號」。

因此,一旦與switch後面圓括號中表示式的值匹配,就從此標號處開始執行;

而且執行完一個case後面的語句後,若沒遇到break語句,就自動進入下一個case繼續執行,而不再判斷是否與之匹配,直到遇到break語句才停止執行,退出switch語句。

因此,若想執行一個case分之後立即跳出switch語句,就必須在此分支的最後新增一個break語句。

16樓:y愛華

只要程式執行了break關鍵字,就跳出switch語句

17樓:匿名使用者

後面沒有語句,加不加意思都一樣,所形成的效果也一樣。

加上了更完美。

加上break;語句,執行完前面語句,到這兒跳出switch語句。

不加break語句,執行完前面的語句,到這兒也要跳出switch語句。

所以,加不加都一樣的。

c語言switch語句問題,程式執行case1,然後break,是不是再執行case2的break、case3的break?

18樓:一口沒水的枯井

解答只要遇到break之後 整個switch語句就結束了你的**結果為1

2. 一般情況下,必須要加break

否則得到的結果可能不是你想要的

19樓:酷哥

不是哦,是隻執行一次,比如i=1,執行case1之後就退出了,因為後面有break,它的作用就是結束switch

c語言中用switch語句的時候,為什麼有些case後面沒有語句的,如case10: case9:printf("優秀");

20樓:匿名使用者

c語言中

switch語句其實每個case都會判斷的,所以要用break跳出有時候兩個不同的case需要做相同的處理

例如case10 case 9都是優秀

那麼 case10: 之後不寫任何語句,也不寫break那麼也會執行緊跟著的case 9:後面的語句,顯示優秀就應為用這樣的極值,所以在正常的case情況執行完後,要記得加break

而在多個case有共同操作的時候,可以把他們寫在一起中間都不用break

最後只用寫一次共同操作的**,一個break

21樓:匿名使用者

後面沒有break就會一直執行下去,沒語句也一樣,9,10都會輸出「優秀」

22樓:wolf_騎士

它的意思是,switch中的值位10或者為9時,都直接執行到printf("優秀"),相當於兩個分支走同一個處理結果。轉換成if 。。。else。。。處理就是

if(value == 9 || value == 10)

printf("優秀");

23樓:prince小寶巨蟹

沒有就沒有唄。。。switch語句就是按照case順序下來的 有就case裡面的內容,沒有就不執行

24樓:春風不醉人

如你舉的例子,case10和case9都執行「printf("優秀");」語句。

25樓:匿名使用者

這兩個case是合併的,處理方式一樣

C語言中的switch語句中default放在最前面和最後面有什麼區別

c語言中的copyswitch語句中default放在最前面和bai最後面沒有區別du?switch語句 zhi switch expr 擴充套件資料switch語句的表達dao include voidprint day intday intmain 最前面case語句不能執行 後面的case不能...

c語言裡switch語句裡的default的語句上下都有

沒有break語句就按順序執行。可以通過使用關鍵字default來控制預設建構函式的生成,顯式地指示編譯器生成該函式的預設版本。比如 clas yclass public myclass default 同時提供預設版本和帶參版本,型別是pod的myclass inti data i private...

用if和switch語句編寫c語言程式

include int main switch的 include int main puts s return 0 c語言,分別用if 語句和switch語句編寫程式求分段函式的值 if語句 inlcude include define a 10 a自己取值 void main switch語句 i...