前言
這篇文章將會講述While跟do-while,在選擇迴圈陳述式的時候,這兩個是很常見的選擇,也是很有效果的陳述式。
do-while
這個陳述式會類似流水線或重複作業,當指定的布林運算式評估為True時,do陳述式便會執行陳述式或陳述式區塊,因為運算式會在每次回圈執行後評估,所以do-while會執行一或多次。
do
{
// This code executes at least one time
} while (true)
上述程式為無線迴圈,因為while永遠都回傳True,do-while的整體流程可以簡述為做某件事情直到目標,也就是當目標達成後即停止。
隨機直到某數字停止
Random random = new Random();
int current = 0;
do
{
current = random.Next(1, 11);
Console.WriteLine(current);
} while (current != 7);
程式碼特性
程式碼區塊中的程式碼會影響是否要繼續逐一查看程式碼區塊。 這是 do-while和 while陳述式的關鍵差異特性。 foreach和 for都依賴程式碼區塊的外部因素來決定執行流程是否應繼續執行程式碼區塊。
在程式設計中,選擇do和 while陳述式的理由是程式碼區塊主體判斷執行流程是否應繼續或停止的方式。
While
這個陳述式跟do-while不同的地方在於,判斷式會放在一開始,do-while會停在判斷式的位置,而while變成只會在判斷式為Ture時才會運作,也就是說達到目標才會運作,跟do-while是完全不同的概念。
Random random = new Random();
int current = random.Next(1, 11);
while (current >= 3)
{
Console.WriteLine(current);
current = random.Next(1, 11);
}
Console.WriteLine($"Last number: {current}");
while的判斷式會更像閘門或篩子,只在布林運算式為True時允許執行流程進入,若不符合則跳出。
Continue陳述式
用於繞過程式碼區塊中剩餘的部分,並繼續前往下一個反覆項目,可以使用本陳述式。
if (current >= 8) continue;
相較於break,Continue可以說是忽略後的程式碼,並「繼續」運作。
結語
while & do-while是很有用的陳述式,在進行遊戲設計的時候,很容易就會需要重複同一個動作或重複達標的動作,在官方的介紹裡面,也能看到這個程式用什麼來介紹會符合本質。