在C#中,循環是一種控制結構,用于重復執行一組語句直到滿足特定條件。C#提供了幾種循環結構,包括for循環、while循環、do-while循環和foreach循環。每種循環都有其特定的用途和場景。下面我將逐一介紹這些循環的用法。
一、C#循環類型
1. for 循環
for循環是最常用的循環之一,它由初始化部分、條件表達式和迭代部分組成。
for (int i = 0; i < 10; i++)
{Console.WriteLine(i);
}
2. while 循環
while循環在給定條件為真時重復執行代碼塊。
int i = 0;
while (i < 10)
{Console.WriteLine(i);i++;
}
3. do-while 循環
do-while循環至少執行一次代碼塊,然后在每次迭代后檢查條件。
int i = 0;
do
{Console.WriteLine(i);i++;
} while (i < 10);
4. foreach 循環
foreach循環用于遍歷數組或集合中的每個元素。它通常用于讀取集合中的元素,而不是修改它們。
int[] numbers = { 1, 2, 3, 4, 5 };
foreach (int number in numbers)
{Console.WriteLine(number);
}
示例:使用循環打印1到10的數字
// 使用for循環
for (int i = 1; i <= 10; i++)
{Console.WriteLine(i);
}
// 使用while循環
int i = 1;
while (i <= 10)
{Console.WriteLine(i);i++;
}
// 使用do-while循環
int j = 1;
do
{Console.WriteLine(j);j++;
} while (j <= 10);
注意事項:
-
在使用for和while循環時,確保更新循環變量以避免無限循環。
-
在使用foreach循環時,通常不修改集合中的元素,因為這將違反集合的預期用途并可能導致運行時錯誤。如果需要修改元素,請使用索引器或使用其他類型的循環(例如for)。
-
選擇合適的循環類型可以提高代碼的可讀性和效率。例如,當你需要遍歷數組或集合的所有元素時,使用foreach;當你需要重復執行直到滿足某個條件時,使用while或do-while;當你需要精確控制迭代次數時,使用for循環
二、循環終止方式
1?.自然終止?
- 當循環條件變為false時自動退出(如for循環的計數器超出范圍或while循環的條件不再滿足)?。
2?.break語句?
- 作用?:立即終止當前所在循環,跳出循環體?。
- 示例?:
for (int i = 0; i < 10; i++)
{if (i == 5) break; // 當i=5時終止循環
}
3?.continue語句?
- 作用?:跳過當前迭代,進入下一次循環?45。
- 示例?:
for (int i = 0; i < 5; i++)
{if (i % 2 == 0) continue; // 跳過偶數Console.WriteLine(i); // 輸出1,3
}
4?.goto語句?
- 作用?:跳轉到指定標簽位置,可退出多層嵌套循環?56。
- 示例?:
for (int i = 0; i < 3; i++)
{for (int j = 0; j < 3; j++) {if (j == 1) goto Exit; // 跳轉到Exit標簽}
}
Exit: Console.WriteLine("已跳出循環");
?注意?:過度使用會降低代碼可讀性?。
三、選擇終止方式的建議?
終止方式 | 適用場景 | 注意事項 |
---|---|---|
?自然終止? | 條件明確且可預測的循環 | 確保循環條件最終變為false |
?break? | 需提前終止循環(如錯誤檢測) | 僅終止當前循環層 |
?continue? | 跳過特定迭代(如過濾數據) | 避免跳過必要的循環終止條件 |
?goto? | 多層嵌套循環需快速退出 | 謹慎使用,優先替代方案 |
通過合理選擇循環類型和終止方式,可顯著提升代碼效率和可維護性。建議優先使用break和continue,僅在必要時使用goto?