寫switch case語句不加break會怎樣

時間 2021-08-11 17:50:57

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.

新人學習寫sql語句,關於迴圈語句

沒有問題,在sqlserver2008裡執行得到正確結果 將sql server的用法用到mysql上,這算是創新嗎?你這是什麼資料庫的?mysql 嗎 如何用sql語句迴圈執行語句 sql語句無法實現迴圈,只能通過程式或者儲存過程來實現。如果只是一次性工作,則建議直接用excel的公式手批量生成s...

insert into語句怎麼寫? Sqlserver

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

寫小說常用的語句

桓蘭月 我們都是單翼的天使,唯有彼此的擁抱才能展翅飛翔,據說人來世上就是為了尋找另一半的,我千辛萬苦終於找到了你 16.一個人總要走陌生的路,看陌生的風景,聽陌生的歌,然後在某個不經意的瞬間,你會發現,原本費 盡心機想要忘記的事情真的就這麼忘記了。17.躲在某一時間,想念一段時光的掌紋 躲在某一地點...