2016年8月12日 星期五

【Unity官方教學分享】迴圈

網頁連結

迴圈是程序中重複執行程式碼的方法,本篇會提到四種迴圈種類,分別是while、do-while、for、foreach,首先對這四種迴圈建立腳本。

第一個是while迴圈,以下是範例。
using UnityEngine;
using System.Collections;

public class WhileLoop : MonoBehaviour
{

    int cupsInTheSink = 4;
    void Start ()
    {
        while (cupsInTheSink > 0)////(1)
        {
            Debug.Log("I've washed a cup");
            cupsInTheSink--;////(2)
        } 
    }
}
(1)while迴圈當括號中的條件成立時,會一直重複執行{}中的內容,直到條件不符合為止。
(2)當每次執行這個while迴圈時,會將cupsInTheSink變數減1,所以當cupsInTheSink數值為4、3、2、1都會執行迴圈,合計執行四次,執行第五次數值為0時迴圈結束。

執行結果如下。

接著是do-while迴圈,以下是範例。
using UnityEngine;
using System.Collections;

public class DoWhileLoop : MonoBehaviour
{
    void Start ()
    {
        bool shouldContinue = false;
        do////(1)
        {
            Debug.Log("Hello World");
        } while (shouldContinue == true);////(2)
    }
}
do-while迴圈語法類似while迴圈,但do-while迴圈的條件判斷是在執行完迴圈之後,while迴圈則是在迴圈開始前。
(1)從do開始執行迴圈,由於條件判斷會在迴圈結束後才執行,所以do-while迴圈必定執行一次。
(2)迴圈的條件判斷,要注意的是while最後是有;的。

執行結果如下。

再來是for迴圈,以下是範例。
using UnityEngine;
using System.Collections;

public class ForLoop : MonoBehaviour
{
    int numEnmies = 3;
 void Start ()
    {
        for (int i = 0; i < numEnmies; i++)////
        {
            Debug.Log("Creating enemy number: " + i);
        }
    }
}
相對於前面的while迴圈,for迴圈的規則就嚴謹許多,除了條件判斷外,還多了初始值與更新值。
迴圈語法為for(起始值; 條件式; 更新值);,迴圈執行的流程為:
(1)給定初始值int i = 0。
(2)判斷i < numEnmies是否成立,成立執行迴圈,不成立結束迴圈。
(3)執行迴圈內容Debug.Log("Creating enemy number: " + i);。
(4)執行完畢後回到開頭更新數值,也就是i++。
(5)回到(2)的動作。

執行結果如下。

最後是foreach迴圈,以下是範例。
using UnityEngine;
using System.Collections;

public class ForeachLoop : MonoBehaviour {
    void Start () 
    {
        string[] strings = new string[3];

        strings[0] = "First string";
        strings[1] = "Second string";
        strings[2] = "Third string";

        foreach (string item in strings)////(1)
        {
            Debug.Log(item);////(2)
        }
    }
}
foreach迴圈非常適合處理陣列中的元素。
(1)迴圈語法為foreach(元素 in 陣列),而迴圈會在陣列的所有元素都依序處理完為止。
(2)例如這裡的item在執行迴圈第一次數值為strings[0],第二次數值為strings[1],以此類推。

執行結果如下。

以上就是迴圈的說明。
這次就到這裡。

沒有留言:

張貼留言

【自製小遊戲】水平思考猜謎(海龜湯)

遊戲連結 海龜湯的玩法是由出題者提出一個難以理解的事件,參與猜題者可以提出任何問題以試圖縮小範圍並找出事件背後真正的原因。但出題者僅能以「是」、「不是」或「沒有關係」來回答問題。 本遊戲蒐集各種論壇、平台的42個題目,提供給想玩海龜湯卻愁找不到題目的你們。 ...