Switch case 語句怎么使用
switch的用法是判斷case后面的表達式和switch后面的表達式是否相匹配,一旦case匹配,就會順序執行后面的程序代碼,而不管后面的case是否匹配,直到遇見break。
Switch case 語句表達式為: switch{case 常量1: 語句體1;case 常量2: 語句體2;case 常量3: 語句體3;case 常量4: 語句體4;。.default : 語句體;} 當常量表達式所表達的量與其中一個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是或的關系。 參考資料來源:百度百科——switch。
switch語句怎么用
switch語句的語法如下(switch,case和default是關鍵字):
switch ( 表達式)
{
case 常量表達式1 :語句1;break;
case 常量表達式2 :語句2;break;
……
case 常量表達式n :語句n;break;
default:語句n+1;break;
}
說明:
break退出{ }
case后面只能跟一個值(加冒號:),而不能是一個表達式
switch(表達式) 后面沒有;(分號)
{}前后沒有;(分號)
switch語句規則
case標簽必須是常量表達式(constant Expression)
只能針對基本數據類型使用switch,這些類型包括int、char等。對于其他類型,則必須使用if語句。
case標簽必須是惟一性的表達式;也就是說,不允許兩個case具有相同的值。
不要問為什么,C就這規定!我們只需要了解規則,學會應用即可!
猜想原因:浮點型數據不是準確的數據,在機器中只能表示出一個近似值,如:0.1 在機器中存的是0.09999612。. 也可能是0.09999723。. 根據精度不同,數據來源不同,其值是個不確定的數據,因此,不能用CASE來定位
switch語句用法-switch語句怎么用
switch(x){ (prime(x)){case2:case3:case5:case7:process_prime(x);}else{case4:case6:case8:case9:case10:process_composite(x);}}你能說出它如何執行嗎?switch語句的格式為:switch(條件)語句其中,條件的類型可以是整數類型,枚舉類型,或者類類型(但該類需要有單一的轉換到整數類型或(可以是字符類型,但不能是浮點類型、字符串、指針類型等),語句部分不一定非得是一條復合語句。
因此,switch("123"[2]+(int)3。1);是條合法的switch語句,switch(j)case5:i++;也是條合法的switch語句。
如果switch的語句部分是一條非復合語句,則其內定義的變量作用域,效果上等同于該條語句加上了{}。 如inti=3;switch(i)inti=4;,相當于inti=3;switch(i){inti=4;},因此這并不會導致同一局部域下的重復定義錯誤。
case標號后為一個整數類型的常量表達式,因此inti=3;switch(i){case3:;}合法,而inti=3;switch(3){casei:;}不合法,因為casei:的i不是個靜態表達式。 如果將inti=3;換成constinti=3;則后者在C++中就合法了,但在C中仍然不合法。
原因是C和C++對const的處理不同,在C中,const限定的量是不能直接去修改的,但它本身并不是常量表達式;在C++中,const限定的量,如果其值能在編譯時確定,則其可出現在必須使用常量表達式之處。 同一個switch的各個case標號的值不能夠相互重復。
要注意的是,case標號在實現中是有上限的:C89標準要求至少257個,這保證了ASCII被switch列舉一遍。雖然要求case標號是常量表達式,看起來似乎不是很零活方便(比如對比VB的SelectCase),但是這樣的設計可以保證更高的效率,而效率則是C和C++最為看重的因素。
因為case標號的值是編譯時可確定的整數類型,又因為其不可有重復,因此編譯器可以進行優化。最后要強調的問題是,C++中goto不能從前往后跳過變量定義,因此switch內出現的變量定義語句,最好放在復合語句{}中包起來。