C#提供while循環(huán),只要指定條件返回false,則重復執(zhí)行代碼塊。
語法:
while(condition) { //代碼塊 }
while循環(huán)以while關鍵字開頭,并且必須在方括號內包含一個布爾條件表達式,該條件表達式返回true或false。 它執(zhí)行代碼塊,直到指定的條件表達式返回false。
該for循環(huán)包含初始化和增量/減量部分。使用while循環(huán)時,應在循環(huán)開始之前完成初始化,并且遞增或遞減步驟應在循環(huán)內部。
int i = 0; // 初始化 while (i < 10) //條件 { Console.WriteLine("i = {0}", i); i++; // 遞增 }
i = 0 i = 1 i = 2 i = 3 i = 4 i = 5 i = 6 i = 7 i = 8 i = 9
上面的while循環(huán)包含一個表達式 i <10。在while循環(huán)中,使用i ++將i的值增加到1。 當i的值等于10并且條件i <10返回false時,將執(zhí)行上述while循環(huán)。
使用 break 或 return 關鍵字在某些條件下退出 while 循環(huán),如下所示。
int i = 0; while (true) { Console.WriteLine("i = {0}", i); i++; if (i > 10) break; }
確保條件表達式的計算結果為false,或在某些條件下退出while循環(huán),以避免無限循環(huán)。下面的循環(huán)缺少適當?shù)臈l件或中斷循環(huán),這使它成為一個無限的while循環(huán)。
int i = 0; while (i > 0) { Console.WriteLine("i = {0}", i); i++; }
C# 允許while循環(huán)在另一個while循環(huán)中,如下所示。但是,不建議使用嵌套while循環(huán),因為這樣很難調試和維護。
int i = 0, j = 1; while (i < 2) { Console.WriteLine("i = {0}", i); i++; while (j < 2) { Console.WriteLine("j = {0}", j); j++; } }
i = 0 j = 1 i = 1