C語言關於switch語句的問題

時間 2021-09-10 01:44:29

1樓:匿名使用者

switch語句的規則是首先找到乙個匹配項,在此匹配項之下開始執行,直到遇到乙個break則返回,比如對於i=1,首先找到case 1:,然後沒有看到break,繼續執行case 2:的語句,a+3,然後還是發現沒break,又執行default,使得a=8了,其他的i值以此類推會得到31這個結果

他沒有忽略case 1:這個語句,只是這個只是乙個標記,用來判斷i值是否為1,當i=1的時候就會執行case 1:後面的語句,但是發現case 1:

這個語句後面沒有可執行的語句,也沒有break,因此他繼續執行case 2:下面的語句,直到遇見乙個break或者這個域結束

另外:case 1:

case 2: a+=3;

與case 1:a+=3;

case 2:a+=3;

是不同的,比如switch(i),當i=1的時候上面的a=3,下面的會使得a=6

2樓:有錢買不起房子

//i=1,執行a+=3,a=3,因為沒有break,繼續執行default語句a+=5,a=8

//i=2,執行a+=3,a=11,因為沒有break,繼續執行default語句a+=5,a=16

//i=3,執行a+=2,a=18,因為沒有break,繼續執行a+=3,a=21,繼續執行default語句a+=5,a=26

//i=4,執行default,a+=2,a=31//i=5,跳出迴圈

3樓:

迴圈執行4 次,分別是i=1,2,3,4時執行。

當i=1時,執行a+=3,a+=5,結果a=8。

當i=2時,執行a+=3,a+=5,結果a=16。

當i=3時,執行a+=2,a+=3,a+=5,結果a=26。

當i=4時,執行a+=5,結果a=31。

4樓:匿名使用者

switch的機制:

判斷變數是符合哪個case,如果符合某乙個case,那麼從那個case處執行。

因此如果沒有break語句,下面的case依然會按順序執行,switch只負責跳到哪兒,該怎麼執行還是怎麼執行。

題目當中的case 1沒有break,因此case2依然會執行。

另外,虛機團上產品**,超級便宜

5樓:卯波勢悅遠

型別不一樣,兩種用法都對,第一種要求switch是乙個整型變數,而第二中是乙個char型,加不加括號沒什麼區別

6樓:殳妮素清一

case

後邊只能跟常量表示式

要想達到你說的要求可以用if語句:

同時要注意區域問題,因為是百分制,一定要限於0-100之間。

C語言中switch語句什麼意思

小u自 switch在c語言中是保留字,其作用是進行判斷選擇。switch 開關語句 常和case break default一起使用。switch用在程式設計中,如c語言中它經常跟case一起使用,是乙個判斷選擇 其功能就是控制流程流轉的。直線翻譯 switch語句,即 切換 語句 case即 情...

c語言程式設計,switch語句,2023年第一天是周二,輸入月份日期輸出星期幾

include include int main switch tianshu 7 getch 以上程式可以輸出輸入正確的月 日期後輸出星期,沒有對異常輸入做判斷,例如,如果輸入13月1日,也就是13 1,那麼也會有響應的輸出,不用懷疑,肯定是錯誤的。所以上程式只支援正常的2013的日月輸入。如果要...

c語言中選單裡switch語句裡形成迴圈輸入的問題(求高人解答)

嘿嘿,你不妨在你的程式中除錯一下看看,其實當從error呼叫menu的時候n好像被前面的東西賦值了吧 你可以採用一種方式就是在error函式中新增如下 就解決問題char tmp while tmp getchar n 我感覺錯誤是在你在error 中呼叫了menu 方法,這樣會構成乙個遞迴。建議的...