ETH官方钱包

前往
大廳
主題

Unity C# | While & Do-While

瓶裝雪 | 2023-07-28 19:00:11 | 巴幣 2 | 人氣 364

一、前言
  這篇文章將會講述 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)習慣早上起來撰寫文章,這可以大幅降低我請假休息的可能性,對於文章更新有非常好的幫助。

送禮物贊助創(chuàng)作者 !
0
留言

創(chuàng)作回應(yīng)

相關(guān)創(chuàng)作

更多創(chuàng)作