位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > C# > 問(wèn)題詳情

C# 流程控制分支 switch 語(yǔ)句

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-12

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)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部