[C#]C#補習——控制流程語句相關

來源:互聯網
上載者:User

       繼續補習,這篇文章主要補習下控制流程程的相關語句及關鍵字,在C#中用於控制流程程的語句有:if、while、dowhile、switch、for、foreach、goto、break、continue,大多數都是我們日常開發所使用的,而這篇主要還是補習那些遺漏的知識。

以下是本文所要介紹的內容:

1、迴圈語句:for、foreach

2、switch中的break、return和goto

 

一、迴圈語句:for、foreach

      迴圈語句是所有語言中都很常見的了,而下面記錄的分別是一個我不曾使用過的for迴圈使用foreach我有時候會犯的一個錯誤

1、一個我不曾使用過的for迴圈,一般常規的定義for迴圈代碼如下:

for(int i=0;i<count;i++){    //do something}

久而久之的使用過程中,我就習慣性的認為for迴圈當中只能包含一個參數,實則不然,for迴圈其實可以包含多個參數,並且可以實現一些特殊的判斷,只需要在多個參數之間加上“,”分隔,如下代碼:

for(int i=0,j=10;((i>5)&&(j<5));i++,j--){     //do something;}

當然中間用於邏輯判斷的也可以是或、異或,或者更複雜的判斷,雖然這種寫法不常見(至少我沒用到,或者我功力還太弱),但是在某些情況下還是應該比較有用的。

2、使用foreach我有時候會犯的一個錯誤,這個錯誤也是比較常見的,如下代碼:

DataRow row=new DataRow();foreach(var item in DataTable.Rows){      item=row;}

這個是個很典型的案例,就是foreach不允許在迴圈體內修改變數,如上面代碼中的row,如果按照以上代碼看一眼就能發現問題,但是實際開發過程中,有時候foreach中會有許多其他邏輯代碼,往往會把這個忽略掉,所以需要謹記。

 

二、switch中的break、return和goto

      用過switch的朋友都知道,switch是用來替換多if語句情況下的一個解決方案,同時在switch中的case子句下必須編寫break關鍵字用來跳出,否則會出錯,當然解決方案也不止這一個,C#中還有2個關鍵字可以解決這個問題——return和goto,下面就說下這2個語句在switch中使用需要注意的情況:

1、return,return主要是用於返回,如果在switch中case子句裡使用return來代替break後,則switch後面的所有代碼都不會執行,將直接跳轉到方法的結束,所以使用起來需要慎之又慎。

2、goto,goto的話是一個很少見關鍵字,因為其使用會導致整個程式的錯亂、不可讀性甚至異常,同時C#文法中還規定了其不允許使用goto從一個方法跳轉到另外一個方法,所以一般來說能用盡量少用,而goto在switch中使用有個比較特色之處,如下代碼:

switch(A){     case 1:        var b=1;        goto default;     case 2:        var c=1;        goto default;     default:        var d=1;        break;}

對於在switch中需要無論哪種情況都走一下default的時候,可以使用goto語句來跳轉到default,實現了一簡單的代碼複用。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.