C# 流程控制分支 switch 語(yǔ)句
switch語(yǔ)句非常類(lèi)似于if語(yǔ)句,因?yàn)樗彩歉鶕?jù)測(cè)試的值來(lái)有條件地執(zhí)行代碼。但是,switch語(yǔ)句可以一 次將測(cè)試變量與多個(gè)值進(jìn)行比較,而不是僅測(cè)試一個(gè)條件。這種測(cè)試僅限于離散的值,而不是像“大于X”這 樣的子句,所以它的用法有點(diǎn)不同,但它仍是一種強(qiáng)大的技術(shù)。 switch語(yǔ)句的越本結(jié)構(gòu)如下:
switch (〈testier〉)
{
case <comparisonVall>:
<code to execute if <testVar> 一一 <comparisonVall> >
break;
case <comparisonVal2>:
<code to execute if <testVar> == <comparisonVa12> >
break;
. . .
case <comp3risonVcilN>:
<code to execute if <testVar> == <comparisonValN> >
break;
default:
<code to execute if <testVar> != comparlsonVals>
break;
}
<testVar>中的值與每個(gè)值(在case語(yǔ)句中指定)進(jìn)行比較,如果有一個(gè)匹配,就執(zhí)行為該 匹配提供的語(yǔ)句。如果沒(méi)有匹配,但有default語(yǔ)句,就執(zhí)行default部分的代碼。
執(zhí)行完每個(gè)部分的代碼后,還需要有另一個(gè)語(yǔ)句break。在執(zhí)行完一個(gè)case塊后,再執(zhí)行第二個(gè)case語(yǔ)句 是非法的。
注意:
在此,C#與O+是有區(qū)別的s在C++中,可以在運(yùn)行完一個(gè)case語(yǔ)句后,運(yùn)行另一個(gè)case語(yǔ)句。
這里的break語(yǔ)句將中斷switch語(yǔ)句的執(zhí)行,而執(zhí)行該結(jié)構(gòu)后面的語(yǔ)句。
在C#代碼中,還有其他方法可以防止程序流程從一個(gè)case語(yǔ)句轉(zhuǎn)到下一個(gè)case語(yǔ)句??梢允褂胷etum語(yǔ) 句,中斷當(dāng)前函數(shù)的運(yùn)行,而不是僅中斷switch結(jié)構(gòu)的執(zhí)行(詳見(jiàn)第6章)。也可以使用goto語(yǔ)句(如前所述), 因?yàn)閏ase語(yǔ)句實(shí)際上是在C#代碼中定義的標(biāo)簽。例如:
switch (<testVar>)
{
case <comparisonVall>:
<code to execute if <testVar> == <comparisonVa11> >
goto case <comparisonVa12> 7
case <comparisonJ:
<code to execute if <testVar> == <comparisonVal2> >
break;
. . .
一個(gè)case語(yǔ)句處理完畢后,不能自由進(jìn)入下一個(gè)case語(yǔ)句,但這條規(guī)則有一個(gè)例外。如果把多個(gè)case語(yǔ)
句放在一起(堆疊它們),其后加一個(gè)代碼塊,實(shí)際上是一次檢查多個(gè)條件。如果滿(mǎn)足這些條件中的任何一個(gè), 就會(huì)執(zhí)行代碼,例如:
switch (<testVar>)
{
case <comparisonVall>: case <comparisonVal2>:
<code to execute if <testVar> == <comparisonVall> or <testVar> == <comparisonVal2> >
break;
注意,這些條件也適用于default語(yǔ)句0 default語(yǔ)句不一定要放在比較操作列表的最后,還可以把它和case 語(yǔ)句放在一起。用break或return添加一個(gè)斷點(diǎn),可確保在任何情況下,該結(jié)構(gòu)都有一條有效的執(zhí)行路徑。 在下面的示例中,將使用switch語(yǔ)句,根據(jù)用戶(hù)為測(cè)試字符串輸入的值,將不同字符串寫(xiě)到控制臺(tái)。
繼續(xù)查找其他問(wèn)題的答案?
- 開(kāi)始學(xué)習(xí)
海報(bào)設(shè)計(jì)精品錄播課程2121次觀(guān)看
開(kāi)始學(xué)習(xí)字體設(shè)計(jì)精品錄播課程2121次觀(guān)看
開(kāi)始學(xué)習(xí)室內(nèi)設(shè)計(jì)精品錄播課程2121次觀(guān)看
開(kāi)始學(xué)習(xí)影視動(dòng)畫(huà)精品錄播課程2121次觀(guān)看
開(kāi)始學(xué)習(xí)UI設(shè)計(jì)精品錄播課程2121次觀(guān)看
開(kāi)始學(xué)習(xí)
點(diǎn)擊加載更多評(píng)論>>