邏輯控制語句以及循環控制語句

在這裏插入圖片描述


邏輯控制

所謂的邏輯控制,就是控制計算機閱讀代碼的一個順序邏輯,作用提高算法的執行效率

條件判斷語句

判斷結構要求程序員指定一個或多個要評估或測試的條件,以及條件爲真時要執行的語句(必需的)和條件爲假時要執行的語句(可選的)
1.if語句(一個if語句由一個布爾表達式後跟一個或多個語句組成.)
if(a==b)
{
  /*如果布爾表達式爲真將執行的語句*/
}

如果布爾表達式爲 true,則 if 語句內的代碼塊將被執行。如果布爾表達式爲 false,則 if 語句結束後的第一組代碼(閉括號後)將被執行



2.if…else語句(一個if語句後可跟一個可選的else語句,else語句在布爾表達式爲假時執行)

if (a==b)
{
    /* 如果布爾表達式爲真將執行的語句 */
}
else
{
   /* 如果布爾表達式爲假將執行的語句 */
}

如果布爾表達式爲true,則執行if塊內的代碼。如果布爾表達式爲false,則執行else塊內的代碼
當使用 if…else語句時,以下幾點需要注意:
A. 一個 if 後可跟零個或一個else,它必須在任何一個 else if 之後。
B. 一個 if 後可跟零個或多個 else if,它們必須在 else 之前。
C.一旦某個 else if 匹配成功,其他的 else if 或 else 將不會被測試。

if(a==b)
{
   /* 當布爾表達式 1 爲真時執行 */
}
else if(a==c)
{
   /* 當布爾表達式 2 爲真時執行 */
}
else if(a==d)
{
   /* 當布爾表達式 3 爲真時執行 */
}
else
{
   /*以上條件都不爲真時執行*/
}

1.嵌套if語句(可以在一個 if 或 else if 語句內使用另一個 if 或 else if 語句。)
if(a==b)
{
   /* 當布爾表達式 1 爲真時執行 */ 
   if(a==c)
   {
      /* 當布爾表達式 2 爲真時執行 */ 
   }
}

2.switch語句(一個 switch 語句允許測試一個變量等於多個值時的情況)

switch(expression)
{
case constant-expression : statement(s);
break;
case constant-expression : statement(s);
break;
/* 您可以有任意數量的 case 語句 */ 
default : /* 可選的 */statement(s); 
break;
}

switch 語句必須遵循下面的規則 :

  1. switch 語句中的 expression 必須是一個整型或枚舉類型,或者是一個class類型,其中class有一個單一的轉換函數將其轉換爲整型或枚舉類型。
  2. 在一個switch中可以有任意數量的case語句。每個case後跟一個要比較的值和一個冒號
  3. case 的 constant-expression 必須與 switch 中的變量具有相同的數據類型,且必須是一個常量。
  4. 當被測試的變量等於 case 中的常量時,case 後跟的語句將被執行,直到遇到 break 語句爲止
  5. 當遇到break語句時,switch終止,控制流將跳轉到switch語句後的下一行。
  6. 不是每一個case都需要包含break。如果case語句爲空,則可以不包含 break,控制流將會繼續後續的case,直到遇到 break 爲止。
  7. C# 不允許從一個開關部分繼續執行到下一個開關部分。如果 case 語句中有處理語句,則必須包含 break 或其他跳轉語句。
  8. 一個 switch 語句可以有一個可選的 default case,出現在 switch 的結尾。default case 可用於在上面所有 case 都不爲真時執行一個任務。default case 中的 break 語句不是必需的
  9. C# 不支持從一個case標籤顯式貫穿到另一個case標籤。如果要使C#支持從一個case標籤顯式貫穿到另一個case 標籤,可以使用 go to 一個 switch-case 或 goto default。

循環控制語句

for循環

for ( init; condition; increment )
{
statement(s);
}

下面是 for 循環的控制流:
init 會首先被執行,且只會執行一次。這一步允許您聲明並初始化任何循環控制變量。您也可以不在這裏寫任何語句,只要有一個分號出現即可
接下來,會判斷 condition。如果爲真,則執行循環主體。如果爲假,則不執行循環主體,且控制流會跳轉到緊接着 for循環的下一條語句。
在執行完 for 循環主體後,控制流會跳回上面的 increment 語句。該語句允許您更新循環控制變量。該語句可以留空, 只要在條件後有一個分號出現即可。
條件再次被判斷。如果爲真,則執行循環,這個過程會不斷重複(循環主體,然後增加步值,再然後重新判斷條件)。在條 件變爲假時,for 循環終止。
三者缺少任意一個這個循環語句變成死循環


foreach循環

使用foreach可以迭代數組或者一個集合對象,遍歷一個集合中的每一項,遍歷到一項循環一次
foreach(var temp in arrayOfIntts)
{
   循環體
}

while和do...while語句


while循環

要給定的條件爲真,C#中的 while 循環語句會重複執行一個目標語句。
while(condition)
{
statement(s);
}

在這裏,statement(s) 可以是一個單獨的語句,也可以是幾個語句組成的代碼塊。condition 可以是任意的表達式,當爲任意非零值時都爲真。
當條件爲真時執行循環。當條件爲假時,程序流將繼續執行緊接着循環的下一條語句

do...while循環

不像 for 和 while 循環,它們是在循環頭部測試循環條件。do...while 循環是在循環的尾部檢查它的條件。do...while 循環與 while 循環類似,但是 do...while 循環會確保至少執行一次循環。
do
{
statement(s);
}while( condition )

條件表達式出現在循環的尾部,所以循環中的 statement(s) 會在條件被測試之前至少執行一次。如果條件爲真,控制流會跳轉回上面的 do,然後重新執行循環中的 statement(s)。這個過程會不斷重複,直到給定條件變爲假爲止。


控制語句

break語句:break控制循環語句跳出當前循環

當 break 語句出現在一個循環內時,循環會立即終止,且程序流將繼續執行緊接着循環的下一條語句。它可用於終止 switch 語句中的一個 case。
如果使用的是嵌套循環(即一個循環內嵌套另一個循環),break 語句會停止執行最內層的循環,然後開始執行該塊之後的下一行代碼。

continue語句:控制程序跳出本次循環進入下一次循環

C#中的 continue 語句有點像 break 語句。但它不是強迫終止,continue 會跳過當前循環中的代碼,強迫開始下一次循環。對於for循環,continue語句會導致執行條件測試和循環增量部分。對於while和do...while循環,continue語句會導致程序控制回到條件測試上。

return語句:控制程序代碼直接跳出從他往後的所有代碼直到本次條件結束

把控制權返回給方法的調用者,直接結束當前的事件或方法

無限循環

如果條件永遠不爲假,則循環將變成無限循環。for 循環在傳統意義上可用於實現無限循環
for ( init; condition; increment )
{
statement(s);
}

缺少init,condition,increment,其中之一都會構成死循環,也就是無限循環。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章