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

C# do-while 與 for 迴圈差異解析:語法、執行流程與適用場景

     編輯:關於C#

do-while vs while 關鍵差異

while:先判斷條件,條件為真才執行本體 (零次或多次)。
do-while:先執行本體,再判斷條件 (至少一次)。

流程圖對照

while (condition) {          do {
    // body                     // body
}                               } while (condition);
  ↑                              ↑
判斷                          執行後判斷

實務範例:使用者輸入驗證


// while: 可能零次執行 (若預設值符合)
string input = "";
while (string.IsNullOrWhiteSpace(input)) {
    Console.Write("請輸入姓名: ");
    input = Console.ReadLine();
}

// do-while: 至少提示一次
string name;
do {
    Console.Write("請輸入姓名: ");
    name = Console.ReadLine();
} while (string.IsNullOrWhiteSpace(name));

// 選單系統:至少顯示一次選單
int choice;
do {
    ShowMenu();
    choice = int.Parse(Console.ReadLine());
    ProcessChoice(choice);
} while (choice != 0);

for 迴圈完整語法與變體

// 標準形式
for (int i = 0; i < 10; i++) { }

// 多重初始化/遞增
for (int i = 0, j = 10; i < j; i++, j--) { }

// 無限迴圈
for (;;) { break; }

// foreach 語法糖 (編譯為迭代器模式)
foreach (var item in collection) { }

// C# 8+ 範圍運算子
foreach (var i in 1..10) { } // 1 到 9

迴圈控制流程關鍵字

關鍵字行為適用迴圈
break立即跳出最內層迴圈所有
continue跳過本次剩餘,進入下一次迭代所有
goto跳轉標籤 (不建議)所有
return離開方法所有
yield break結束迭代器iterator

效能與最佳實務

  • 已知迴圈次數優先 for (JIT 優化最好)
  • 集合遍歷用 foreach (語意清晰、支援 IEnumerable)
  • 至少一次執行用 do-while
  • 條件複雜/動態用 while
  • 避免在迴圈內配置大量物件、字串串接 (用 StringBuilder)
  • 大量資料考慮 Parallel.For / Span / Vector<T> SIMD

while流程圖
do-while流程圖
for範例1
for範例2

本文對應《叩響 C# 之門》第 4.5.2-4.5.3 節 do-while 與 for 迴圈教學內容

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved