1. 程式人生 > >C# 程式執行中的流程控制

C# 程式執行中的流程控制

1、C#之流程控制語句:計算機程式執行的控制流程由三種基本的控制結構控制,即順序結構,選擇結構,迴圈結構

1) 順序結構:從上到下,按照書寫順序執行每一條語句,不會發生跳躍。

程式碼段1; // 先執行程式碼段1 
程式碼段2; // 接著執行程式碼段2 
...

2)選擇結構:對給定的條件進行判斷,再根據判斷結果來決定執行哪一段程式碼。

if 結構

if( 條件 ) 
{ 
    條件成立執行語句; 
} 

if-else結構

if(條件) {
    條件成立執行; 
} 
else 
{ 
    條件不成立執行;
}

if else-if

if(條件1) 
{
     條件1成立執行程式碼段; 
} 
else if (條件2) 
{ 
     條件2成立執行程式碼段; 
} 
else
{
     條件都不成立執行程式碼段; 
}

switch-case

switch( 要判斷的變數或者表示式 ) 
{ 
    case 值1 : 
        執行語句1; 
        break; // switch的穿透性--不加break 
    case 值2 : 
        執行語句2; 
        break; 
    default: 
        預設執行語句; 
        break; } 

當要判斷的變數或者表示式與其中一個case語句中的值相符時,就執行此case語句後面的語句,除非遇到break;語句跳出switch語句為止。如果要判斷的變數或者表示式與所有case語句的值都不相符,就執行default語句中的語句並跳出switch語句。

4)迴圈結構:在給定條件成立的情況下,反覆執行某一段程式碼。 

while

while( 迴圈條件 ) 
{ 
    迴圈體; 
}

while 中的迴圈條件成立時就會執行大括號裡面的程式;

continue 結束當前的迴圈,進入到下一個迴圈;

break 終止整個迴圈,不再執行大括號裡面的程式,進入下一步程式;

do-while:

do{ 
    迴圈體; 
} 
while ( 迴圈條件 );

 

do-while 首先執行do中的迴圈體,執行完成後,去判斷迴圈條件是否成立,如果成立,則繼續回到do中執行迴圈體,如果不成立,則跳出do-while迴圈。

特點:先執行,再判斷,最少執行一遍迴圈體。

for:

for(int i = 0; i< 10; i++)
{
    要迴圈執行的內容 ;
}

int i = 0; 是初始條件  i < 10是迴圈條件  i++ 是技數狀態改變

跟while迴圈一樣,在迴圈體內使用 continue; 結束當前的迴圈,進入到下一個迴圈;

迴圈體內使用 break 終止整個迴圈,不再迴圈體中的程式;for一般在有明確迴圈次數的程式上使用。

迴圈巢狀:

for( int i =0; i < 10;i++)
{
     for(int j =0; j < 10;j++)
    {
      ...        
    }
}

foreach:C# 也支援 foreach 迴圈,使用foreach可以迭代陣列或者一個集合物件。

foreach( var item in list)
{
  ...  
}

 foreach在處理集合和陣列相對於for存在以下幾個優勢:

  • foreach語句簡潔;
  • 效率比for要高(C#是強型別檢查,for迴圈對於陣列訪問的時候,要對索引的有效值進行檢查);
  • 不用關心陣列的起始索引是幾(因為有很多開發者是從其他語言轉到C#的,有些語言的起始索引可能是1或者是0);
  • 處理多維陣列(不包括鋸齒陣列)更加的方便。

 

2、try-catch異常捕獲

try{ 
    可能會出現異常的程式碼;
 } catch (Exception ex) // ex-可能出現異常的異常資訊
{
     // 出現異常後要執行的程式碼; 
} finally{ 
    無論是否出現異常都會執行的程式碼; 
} 

執行過程:當try中的程式碼出現異常的時候,出現異常的這行程式碼後面的程式碼不會被執行。 跳到catch中執行catch的程式碼。