一、前言
這篇文章將會講述 While 迴圈與 Do-While 迴圈。
二、 While
這是一個比較簡易使用的迴圈,但是也比較有危險,使用的時候要特別注意迴圈是否有明確的架構(gòu),不會無限運作導致系統(tǒng)當機。
1. 架構(gòu)
int ValueA = 0;
while(ValueA < 10)
{
//Do something
}
撰寫 While 迴圈,需要一個判斷式,與一個 break 用於跳出迴圈。
2. 判斷式
ValueA < 10 是這個 While 迴圈的判斷式,只要符合這個條件,就會執(zhí)行迴圈內(nèi)的動作,在 While 迴圈中,只要符合迴圈的條件,就可以無限制地繼續(xù)執(zhí)行下去,也因此判斷式會是整個迴圈的重點。
3. 注意事項與風險
如果沒有設(shè)計好迴圈的判斷式,那程式就會陷入無限迴圈,這對於程式撰寫來說是很危險的狀態(tài),如果沒有撰寫良好的判斷式,會導致迴圈停不下來,持續(xù)的執(zhí)行直到電腦崩潰。
尤其是新手容易放在 Update 中使用,導致每一幀都新增一個額外的迴圈,導致一秒出現(xiàn)60多個 While 迴圈,如果這些迴圈不會停止,那遊戲開始沒一秒不到系統(tǒng)就會過熱,直接當機,很快就崩潰了。
三、Do-While
有些時候,我們並不希望一開始就檢測是否符合判斷式,而是希望程式可以先執(zhí)行一遍,再去判斷是否有達成條件,Do-While 就是為了解決這樣的問題而存在,先執(zhí)行一遍程式,再去判斷是否達成條件。
1. 架構(gòu)
do
{
//Do Something.
} while (ValueA < 10);
撰寫 Do-While 迴圈,需要先撰寫一個 Do 關(guān)鍵字、程式碼區(qū)塊,並且在程式碼區(qū)塊的後方添加上 While 迴圈,並且直接上分號;作為結(jié)尾。
2. 判斷式
ValueA > 10 就是此 While 迴圈的判斷式,跟 Whlie 迴圈完全一樣,不過 這個判斷式會在 Do 關(guān)鍵字執(zhí)行以後才會運作,如果不符合條件會跳出迴圈;如果符合條件則會重覆 Do 裡面的事情,但無論怎麼說都會先執(zhí)行一次 Do 裡面的事情。
3. 注意事項與風險
Do-While 迴圈跟 While 的風險完全一樣。
四、額外的跳出迴圈-break
if(ValueA > 10)
{
break;
}
我們可以使用一些方式提前跳出迴圈,除了好好撰寫判斷式之外,就是使用 break 關(guān)鍵字來跳出迴圈,這可以防治 While 迴圈的弊端,提前用 if 判斷式去判斷執(zhí)行了幾次,有沒有超出既定的設(shè)計。
但無論判斷式與 break 寫得多麼的精細與精湛,如果把它包裝在 Update 裡面,那程式無論如何都會崩潰。
四、後記
最近我已經(jīng)習慣早上起來撰寫文章,這可以大幅降低我請假休息的可能性,對於文章更新有非常好的幫助。