while 運算子迭代一段程式碼,直到條件查詢等於 false 或程式碼被 gotoreturnbreakthrow 語句中斷。

while 關鍵字的語法:

while( 條件 ){ code block; }

例:

int i = 0;
while (i++ < 5)
{
    Console.WriteLine("While is on loop number {0}.", i);
}

輸出:

“雖然在迴圈編號 1 上。”
“在迴圈編號 2 上。”
“雖然在迴圈編號 3 上。”
“在迴圈編號 4 上。”
“在迴圈編號為 5 時。”

Live Demo on .NET Fiddle

while 迴圈是 Entry Controlled ,因為在執行封閉的程式碼塊之前檢查條件。這意味著如果條件為 false,while 迴圈將不會執行其語句。

bool a = false;

while (a == true)
{
    Console.WriteLine("This will never be printed.");
}

提供 while 條件而不將其設定為在某些時候變為假,將導致無限或無限迴圈。應儘可能避免這種情況,但是,當你需要時,可能會出現一些特殊情況。

你可以建立如下迴圈:

while (true)
{
//...
}

請注意,C#編譯器將轉換諸如的迴圈

while (true)
{
// ...
}

要麼

for(;;)
{
// ...
}

{
:label
// ...
goto label;
}

請注意,while 迴圈可以具有任何條件,無論多麼複雜,只要它計算(或返回)布林值(bool)。它還可以包含一個返回布林值的函式(因為這樣的函式的計算結果與表示式相同,例如`a == x’)。例如,

while (AgriculturalService.MoreCornToPick(myFarm.GetAddress()))
{
    myFarm.PickCorn();
}