寫switch case語句不加break會怎樣

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

1樓:匿名使用者

switch case語句犯得錯誤:

會犯這種錯誤,都是基礎不牢固導致的。但是這樣的錯誤卻花費了我數小時去debug.想來真是很讓人鬱悶。

看一段**:(不想看**直接看後面總結)

private void arrange()

在這個語句中,如果direction=u。那麼四個case語句都將執行。如果direction=r。

將執行剩下三個語句。原因是switch語句原理是跳轉到ca***位置執行剩下的語句,直到最後或者遇見break為止。因此在每一條語句最後+break即可。

private void arrange()

這樣就能,每一個direction執行一步操作。

當然還有 別的用法,比如一個direction,讓他可以執行兩條或者3條操作這種。

總結:switch語句原理是跳轉到ca***位置執行剩下所有的語句(包括其他case裡面的),直到最後或者遇見break為止。因此在每一條語句最後+break即可。

因此不加break的話將會執行跳轉到的case本身以及以下所有的語句。

2樓:金色潛鳥

switch 語句 中 case 幾 冒號,相當於 入口指示牌, 若 不加break; 則 從 入口case 進入後,接著會依次通過所有後續 case 指示牌 和語句,直到 switch 語句 結束處。

例如:n=2; switch(n)

將從 case 2: 進入,依次執行:

x=7; case 4: x=12; defualt: x=8; 結束。最終 得到 x=8。

如果是 n=2; switch(n) ; 將從 case 2: 進入 執行 x=7; 遇 break; 則結束開關語句。最終 得到 x=7。

switch語句中如果執行了一條case語句是空的後如果沒有break會不會執行default語句(其他case也沒break)

3樓:墨汁諾

會執行bai

,如果case後面沒有

dubreak;就會一直執zhi行下去,直到有break為止;如果dao還專沒有就會執屬行到default語句,結束switch語句。

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

4樓:匿名使用者

會執行,如果case後面沒有break;就會一直執行下去,直到有break為止;如果還沒有就會執行到default語句,結束switch語句

//下面這個題說明了 這個問題(連結)

5樓:匿名使用者

會的,如果一路到default都沒有break的話

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

6樓:匿名使用者

不一定的。

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 ( 變數表示式 )

7樓:匿名使用者

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

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

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

8樓:匿名使用者

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

例int a=2

switch(a)

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

然後再不判斷,

printf("3");

printf("4");

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

9樓:匿名使用者

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

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

10樓:匿名使用者

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

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

11樓:匿名使用者

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

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

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

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

12樓:y愛華

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

13樓:匿名使用者

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

加上了更完美。

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

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

所以,加不加都一樣的。

switch中的break作用是什麼?若不加,會出現什麼情況?請舉例說明

14樓:楓橋映月夜泊

1.switch中的break作用是結束switch迴圈,就是說不再執行下面的case語句。

2.如果不加的話,當你在一個case語句中執行完畢後,會進入下一個case語句,繼續switch迴圈。但是,如果某個分支中沒有語句,那麼也可以不寫break。

3.舉例:

如下圖程式所示,student=10,應迴圈case10,輸出“學生人數為10人”,但因為沒有break,繼續switch迴圈還會執行case20,輸出“學生人數為20人”,case20這句語句含有break,結束迴圈。

這樣就會出現問題,程式要求應當只需要輸出“學生人數為10人”即可,但實際程式輸出了兩個printf。若在case10後加上break,則正確。

break語句通常用在迴圈語句和開關語句中。當break用於開關語句switch中時,可使程式跳出switch而執行switch以後的語句;

如果沒有break語句,則會從滿足條件的地方(即與switch(表示式)括號中表示式匹配的case)開始執行,直到switch結構結束。

當break語句用於do-while、for、while迴圈語句中時,可使程式終止迴圈。而執行迴圈後面的語句,通常break語句總是與if語句聯在一起。即滿足條件時便跳出迴圈。

15樓:匿名使用者

作用是:用於跳出當前的case

例如:switch(xx)

如果在case1裡面新增了breakl那麼,執行完case1裡面的**,程式就跳出switch。

如果沒有break的話,那麼程式執行完case1就執行case2,一直執行下去。直到碰到break或者switch結束。

如果沒有break語句,則會從滿足條件的地方(即與switch(表示式)括號中表示式匹配的case)開始執行,直到switch結構結束。

當break語句用於do-while、for、while迴圈語句中時,可使程式終止迴圈。而執行迴圈後面的語句,通常break語句總是與if語句聯在一起。即滿足條件時便跳出迴圈。

16樓:烏蘇不滅中

作用跳出switch 不加做下面所有case

17樓:匿名使用者

有break就會不往下執行switch的其他分支,否則會一直執行晚全部分支

18樓:匿名使用者

跳出switch,不執行其他的case了

不加就一直走下去,知道下一個break後跳出

如果一直沒有,到switch結束後退出

19樓:匿名使用者

就跟送貨的原理差不多,case 1,2,3好比是1,2,3樓。

你要送給2樓,有break的時候你就不去3樓了,沒有break的時候3樓你也送了。

break可以理解為:“ok,這次完事了!”。

20樓:匿名使用者

在switch語句中,“case 常量表示式”只相當於一個語句標號, 表示式的值和某標號相等則轉向該標號執行,但不能在執行完該標號的語句後自動跳出整個switch 語句.

c語言還提供了一種break語句,專用於跳出switch語句,break 語句只有關鍵字break,沒有引數。在每一case語句之後增加break 語句, 使每一次執行之後均可跳出switch語句,從而避免輸出不應有的結果。

為什麼switch中有的case後加break,有的不加?

21樓:匿名使用者

加break就跳出不執行下面的case了,如果不加就一直執行到有break

22樓:匿名使用者

這樣的原因是,有時幾種情況需要相同處理,比如:a=1,2,3時要執行a=2,a=0時執行語句

回a=1,否則執行語句a=3,則程式可以如答下:

switch ( a )

打字不易,如滿意,望採納。

c語言程式switch語句中什麼時候可以不用break

23樓:匿名使用者

在選擇條件只有一個的時候可以不用break;不過這樣就失去使用switch語句的意義了。

你可以試試如果

內不用break來結束選擇容的話,那麼他執行完成這句後還會接著執行,直到碰到break才結束跳出switch語句。

switch(n)

沒有break的話,如果n=1,那麼執行後會輸出 1, 2.若n=2,那隻會輸出2.

insert into語句怎麼寫? Sqlserver

小舅舅有點帥 插入書寫方式 1 insert into t1 field1,field2 value 001 002 最好的做法明確插入的每一列,列於查錯,而且漏列的機率會降低。2 insert into t1 field1,field2 values 001 002 003 004 能夠批量插入資...

寫SQL語句或者儲存過程,使用SQL語句建立儲存過程

試下,我也不知道行不行 oracle10g以上版本提供wmsys.wm concat select wmsys.wm concat id aa,wmsys.wm concat mawb bb from tablename where rownum 10 select ltrim max sys co...

英語句子什麼時候加S什麼時候不加S?跪求

覃微蘭呂午 在英語中有些名詞可以加 s 來表示所有關係,帶這種詞尾的名詞形式稱為該名詞的所有格,如 a teacher s book。名詞所有格的規則如下 1 單數名詞詞尾加 s 複數名詞詞尾沒有s,也要加 s 如the boy s bag男孩的書包,men s room 男廁所。2 若名詞已有複數...