1樓:匿名使用者
如果cmd = 0; switch中就會執行「case 0:」語句,因為「case 0:」後面沒有「break;」,程式就會繼續執行下去,執行「case 1:
」語句;直到執行到「break;」語句才退出switch語句。
所以在你的程式中,cmd = 0 和 cmd = 1執行的過程是一樣的;
2樓:匿名使用者
是的! cmd=0和1都將執行1後面的語句
c語言,case1後面沒有語句就是指和case2後面的語句相同?還有為什麼ar=9輸出了2次?不是
3樓:匿名使用者
case1 執行
無** 因為前面有個for迴圈 因此switch語句執行三次 j=3時
專 執行case3 結束 j=2時 執行case2 結束 j=1時 因為case1無break; 因此要執行到屬case2才能跳出
其中--i 和i++的區別時 前者是先減一再使用 後者是 使用後再加1 因此程式分別輸出
ar=9 ; ar=9 ;ar=11
4樓:匿名使用者
j = 3時,
baii = 5,執行pr(a[--i]);後,輸出duar=9,i更新為zhi5
j = 2時,daoi = 4,執行pr(a[i++]);後,輸出內ar=9,i更新為5
j = 1時,i = 5,執行pr(a[i++]);後,輸出ar=11,i更新為6
綜上容,**的輸出為:
ar=9ar=9ar=11
c語言switch語句,像case1這樣後面為空的是不是直接執行break
5樓:匿名使用者
不是吧,好象是
當1或者2時,執行2後面的語句。即取值1和取值2一樣處理
6樓:匿名使用者
不是。如果為1,會跳過,接著執行case 2。
c語言中case語句,case和數字之間加不加空格有什麼區別:
7樓:錯落二人組
case是關鍵字,case 1:能被作為switch語句的一部分正確識別;
case1: 只是一個單純的label,可以用goto進行跳轉
8樓:veket的小號
沒有空格編譯過不了滴,如果你遇到沒有空格 執行成功了 一定是執行了前一次編譯生成的exe
c語言中的switch語句,case後面可不可以跟一表示式,例如「100>x>50」;如不可以為什麼?
9樓:愛夏的你呀
不能,case後面是常量表示式。
要注意 case 表示式裡各個分支返回的資料型別是否一致。某個分支返回字元型,而其他分支返回數值型的寫法是不正確的。
使用 case 表示式的時候,最容易出現的語法錯誤是忘記寫 end 。雖然忘記寫時程式會返回比較容易理解的錯誤訊息,不算多麼致命的錯誤。而執行時卻出錯的情況大多是由這個原因引起的。
case表示式的執行結果是 null 。但是不寫可能會造成"語法沒有錯誤,結果卻不對"這種不易追查原因的麻煩,所以寫上 else 子句(即便是在結果可以為 null 的情況下)。
擴充套件資料
1、case表示式的真假值判斷就會中止,而剩餘的 when子句會被忽略。為了避免引起不必要的混亂,使用 when子句時要注意條件的排他性。
2、當case後的表示式的值與switch表示式的值相等時, 即執行對應case後的語句,然後不再進行判斷,繼續執行後面所有case後的語句。如表示式的值與所有case後的常量表示式均不相同時,則執行default後的語句。
10樓:起個名好難
不可以,c語言中的switch case中的case後面僅可以跟整形常量或常量表示式。
原因:如果case後面跟 100>x>50是會出現邏輯錯誤的。
首先c語言中像100>x>50這種表示式的意義並不和數學裡的一樣表示x落在(50,100)這個區間。這個在c語言中100>x會先被計算得到真或假。直接用關係運算得到的真和假在c語言中就是1或0。
而1或0是始終小於50的。這就導致這個表示式的值永遠為零。
常量表示式:在計算機程式語言中,若一個表示式的值不能發生改變,則稱之為常量表示式,如c++中有整型常量,字元常量,邏輯常量,實型常量,地址常量,符號常量,這些常量組成的表示式即為常數表示式。其中含有字元常量的常量表示式可稱為字元常量表示式。
整型常量:整型常量就是通常的整數,包括正整數、負整數和0,其資料型別顯然是整型。除此之外,整型常量包括短整型、長整型和無符號型等不同型別。
擴充套件資料
switch語句的用法和特點:
switch的用法是判斷case後面的表示式和switch後面的表示式是否相匹配,一旦case匹配,就會順序執行後面的程式**,而不管後面的case是否匹配,直到遇見break。
switch case 語句表示式為:
switch
當常量表示式所表達的量與其中一個case語句中的常量相符時,就執行此case語句後面的語句,並依次下去執行後面所有case語句中的語句,除非遇到break;語句跳出switch語句為止。如果常量表示式的量與所有case語句的常量都不相符,就執行default語句中的語句並跳出switch語句。
switch ... case語句的特點:
1、把要討論的表示式與case後面的常量進行比較,發現匹配項之後,從該位置入口,做它下面的所有語句。
2、case 後面的常量不能重複
3、可以在每一個case語句的後面加上break語句,這樣就能保證只做與之相匹配的那一項。
4、break實質:在switch ...case語句裡面最先遇到那一個break就從該位置結束該語句
5、可以在最後一個case的下面加上default語句表示如果找不到匹配項時,就做default對應的項。
6、default並不是一定要有,如果前面遇到break,default就不執行。如果沒有遇到break,就一定會執行。
7、case後面的語句可以不執行,表示與下一個case是或的關係。
11樓:匿名使用者
switch語句非常有用,但在使用時必須謹慎。所寫的任何switch語句都必須遵循以下規則: 只能針對基本資料型別使用switch,這些型別包括int、char等。
對於其他型別,則必須使用if語句。 case標籤必須是常量表示式(constantexpression),如42或者"42"。如果需要在執行時計算case標籤的值,必須使用if語句。
case標籤必須是惟一性的表示式;也就是說,不允許兩個case具有相同的值。 c語言switch應用例子: 例一:
#includeint main() } 像你的50 12樓:匿名使用者 不可以,case後面需要跟一個常量。如果你想要實現以範圍區分,可以使用多個if語句來實現。 13樓:匿名使用者 100>x&&x>50 c語言switch語句中case後是常量表示式: 為什麼有的後面沒有寫任何語句序列?什麼意思 14樓:小馬千紙鶴 那就是什麼都不執行,相當於空語句,空語句在哪都適用,望採納 15樓:黑幕 switch(i) 嗎?這種寫法是把012這三種情況綜合起來 c語言程式題 case '1'和case 1 怎麼區分 s=「120119110」中,怎麼對應 16樓:匿名使用者 所有用bai單引號括起來的字元或用du雙引號括zhi起來的字串中的字元的值dao都是它 內的ascii碼值。如: int n; char str="bbc234"; n='a';n等於 容97n='a';n等於65 n='0';n等於48 n=str[0];n等於98 n=str[3];n等於49 知道了這些,要理解圖中的**就不難了。 17樓:sshhff鳳 case '1'和case 1中,『bai1』是字元du,1是整數zhi。 case '1'等價於case 49 對於字串 daos=「120119110」,版 有權s[0]=='1';s[3]=='1';s[4]=='1';s[6]=='1';s[7]=='1'; c語言的case後可以是表示式嗎?像這樣:case 2+1 switch是3的時候會進入這條語句嗎 18樓:莊政警 可以,case 2+1:就是case 3: case後面可以是表示式,但必須是常量表示式,編譯期就能確定的值int a=0; int n=0; ......................... switch(a) {case 'a'+'b': //這個可以case sizeof(n)+1: //這個可以case n: //這個不可以,n的值在編譯期無法確定} 19樓:夏末煙雨 我經用: var a=5; swicth(true){ case (a>5): //執行語句 break; case (a+5==一0): //執行語句 break; 20樓:匿名使用者 不可以,只能是一個確定的整數型別的值。 c語言switch case中的case1,case2,其中的1`2這些數學意思是? 21樓:匿名使用者 給你舉個例子吧: switch(xyz) switch-case語句的執行順序是,將變數xyz的值與各個case逐個進行比較。當變數xyz的值是0時,執行dotaskzero()並退出switch-case語句體;當變數xyz的值不是0、而是1時,執行dotaskone()並退出switch-case語句體……哪一個case都不符合時,按照default標號執行。 至於你從鍵盤輸入的數字,則要看你scanf的型別是字元還是整數,有針對性地區分。 要麼 case '1' 要麼 case 1 22樓:弒之觴 switch( c ) case 後面是判斷條件,可以是整數、常量,如上,取決於你的條件。 23樓:遠方的遊者 case表示判斷條件,有多個條件時就用case1,case2,case3...這樣表示 是e 1或者e 2的時候都為55的意思麼?如果是 那直接把case1最後的berak去掉就行了 c語言在switch中case2如何引用case1中輸出的數。比如 include menu main break case 2 break default return 0 c語言switch中case... 我猜你說的是三目運算 例如c a b?a b 這個就是等同於 if a b else 對於條抄 件表示式b x y,先計算 襲條件b,然後進行判bai斷。如果b的值為true,計算dux的值,運算zhi結果為x的值 否dao則,計算y的值,運算結果為y的值。一個條件表示式絕不會既計算x,又計算y。條... m相當於m m 1,再用到m的值 而n 相當於 先用到n的值,再進行 m m 1 當然,這個是指在同一個表示式內。對於你的這道題,a m 1 n m n 這是,判斷成立,執行 m,所以,表示式以後,n 1c n,所以c 0 這是複合賦值運算。m n 相當於m m n 即,從m與n相減,然後再將結果儲...c語言中switch語句中case2如何引用case1中的變數
C語言中語句是什麼意思,c語言中!是什麼意思?
c語言中語句m n什麼意思,C語言中語句m n什麼意思