首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# while 迴圈:前測試迴圈語法、break/continue 控制與實戰範例

     編輯:關於C#

語法結構


while (boolean_expression)
    statement;

// 區塊形式
while (condition) {
    // 多行陳述式
}

執行流程

  1. 評估 boolean_expression
  2. true → 執行 statement,回步驟 1
  3. false → 結束迴圈

基礎範例:陣列搜尋


int Find(int value, int[] array)
{
    int i = 0;
    while (i < array.Length && array[i] != value)
        i++;
    return i < array.Length ? i : -1;
}

break / continue 控制


// 計算階乘 (break 跳出)
long result = 1;
int n = 5;
while (true)
{
    result *= n;
    n--;
    if (n == 0) break;
}

// 處理佇列項目 (continue 略過無效)
while (queue.Count > 0)
{
    var item = queue.Dequeue();
    if (!item.IsValid) continue;
    Process(item);
}

無限迴圈模式


// 模式 1:while (true) + break
while (true) { if (done) break; }

// 模式 2:while (condition) 條件在內部變更
while (stream.CanRead) { var data = stream.Read(); }

// 模式 3:迭代器模式 (C# 8.0+)
await foreach (var item in channel.ReadAllAsync()) { ... }

while vs for vs foreach 選擇指南

常見陷阱

  • 條件永真:忘記更新條件變數 → 無限迴圈
  • 修改集合:while 中 list.Remove 可能導致索引錯亂,改用反向 for 或 List.RemoveAll
  • 空迴圈體:while (condition) ; 易誤讀,建議加大括號或註解

總結

while 是最基礎的前測試迴圈,適用於迭代次數未知、條件複雜的場景。搭配 break/continue 實現靈活流程控制。選擇迴圈類型時,優先考慮語意表達力:foreach > for > while > do-while。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
場景推薦理由
已知次數/需索引for索引可控、三區塊清晰
集合遍歷/唯讀foreach語意清晰、無索引錯誤
條件複雜/次數未知/至少一次while / do-while靈活條件控制
非同步串流await foreach原生非同步支援