前往
大廳
主題

Unity C# | While & Do-While

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

一、前言
  這篇文章將會講述 While 迴圈與 Do-While 迴圈。

二、 While
  這是一個比較簡易使用的迴圈,但是也比較有危險,使用的時候要特別注意迴圈是否有明確的架構,不會無限運作導致系統當機。

1. 架構
       int ValueA = 0;
        while(ValueA < 10)
        {
   //Do something
        }
  撰寫 While 迴圈,需要一個判斷式,與一個 break 用於跳出迴圈。

2. 判斷式
  ValueA < 10 是這個 While 迴圈的判斷式,只要符合這個條件,就會執行迴圈內的動作,在 While 迴圈中,只要符合迴圈的條件,就可以無限制地繼續執行下去,也因此判斷式會是整個迴圈的重點。

3. 注意事項與風險
  如果沒有設計好迴圈的判斷式,那程式就會陷入無限迴圈,這對於程式撰寫來說是很危險的狀態,如果沒有撰寫良好的判斷式,會導致迴圈停不下來,持續的執行直到電腦崩潰。

  尤其是新手容易放在 Update 中使用,導致每一幀都新增一個額外的迴圈,導致一秒出現60多個 While 迴圈,如果這些迴圈不會停止,那遊戲開始沒一秒不到系統就會過熱,直接當機,很快就崩潰了。

三、Do-While
  有些時候,我們並不希望一開始就檢測是否符合判斷式,而是希望程式可以先執行一遍,再去判斷是否有達成條件,Do-While 就是為了解決這樣的問題而存在,先執行一遍程式,再去判斷是否達成條件。

1. 架構
do
{
  //Do Something.
}  while (ValueA < 10);

  撰寫 Do-While 迴圈,需要先撰寫一個 Do 關鍵字、程式碼區塊,並且在程式碼區塊的後方添加上 While 迴圈,並且直接上分號;作為結尾。

2. 判斷式
  ValueA > 10 就是此 While 迴圈的判斷式,跟 Whlie 迴圈完全一樣,不過 這個判斷式會在 Do 關鍵字執行以後才會運作,如果不符合條件會跳出迴圈;如果符合條件則會重覆 Do 裡面的事情,但無論怎麼說都會先執行一次 Do 裡面的事情。

3. 注意事項與風險
  Do-While 迴圈跟 While 的風險完全一樣。

四、額外的跳出迴圈-break
if(ValueA > 10)
{
       break;
}

  我們可以使用一些方式提前跳出迴圈,除了好好撰寫判斷式之外,就是使用 break 關鍵字來跳出迴圈,這可以防治 While 迴圈的弊端,提前用 if 判斷式去判斷執行了幾次,有沒有超出既定的設計。

  但無論判斷式與 break 寫得多麼的精細與精湛,如果把它包裝在 Update 裡面,那程式無論如何都會崩潰。

四、後記
  最近我已經習慣早上起來撰寫文章,這可以大幅降低我請假休息的可能性,對於文章更新有非常好的幫助。

送禮物贊助創作者 !
0
留言

創作回應

更多創作