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...