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的程式碼。