2022-07-20|閱讀時間 ‧ 約 3 分鐘

Unity C# | for & foreach

前言

  這篇文章將會介紹 for 陳述式和 foreach 陳述式,以及比較兩者的差別,並撰寫範例介紹用途。

迴圈使用條件

  當我們需要重複執行程式碼達特定次數,或需要控制.NET執行階段去執行反覆項目的方式時,會使用到迴圈,在遊戲產程式中,迴圈更是不可少的重要程式碼區塊。

反覆項目陳述式 | 迴圈

  • for:逐一查看程式碼區塊達特定次數
  • foreach:針對一連串資料(陣列或集合),逐一查看程式碼區塊一次。
  • while:逐一查看程式碼區塊,直到條件符合。

for陳述式的六部分

  • for 關鍵字
  • 定義 for 反覆項目條件的一組括弧。 它包含三個不同的部分,並以陳述式運算子的結尾 (分號) 分隔。
  • 第一個部分會定義和初始化迭代器變數。 在此範例中為:int i = 0。 文件將這個區段稱為初始設定式
  • 第二個部分會定義完成條件。 在此範例中為:i 10。 換句話說,當 i 小於 10 時,執行階段會繼續逐一查看 for 陳述式底下程式碼區塊中的程式碼。 当 i 等于 10 时,运行时停止执行 for 语句的代码块。 文件將這個區段稱為條件
  • 第三個部分會定義要在每個反覆項目之後採取的動作。 在此案例中,在每個反覆項目之後,i++ 會將 i 的值遞增 1。 文件將這個區段稱為迭代器
  • 最後是程式碼區塊。 這是將針對每個反覆項目執行的程式碼。 請注意,在程式碼區塊內會參考 i 的值。 文件將這個區段稱為本文

Break的使用
for (int i = 0; i < 10; i++)
{
   Console.WriteLine(i);
   if (i == 7) break;
}

for與foreach的差別

下列程式只有for可以辦到
string[] names = { "Alex", "Eddie", "David", "Michael" };
for (int i = names.Length - 1; i >= 0; i--)
{
   Console.WriteLine(names[i]);
}

foreach的限制

string[] names = { "Alex", "Eddie", "David", "Michael" };
foreach (var name in names)
{
   // Can't do this:
   if (name == "David") name = "Sammy";
}
name是區域變數,而在for中是外部的陣列。

後記

  其實在撰寫遊戲程式時,我只用到 for 而 foreach是從來沒用過,只有在跟著教學撰寫程式時,才會用到其他的迴圈,因此每一位程式員在處理問題時會使用的方式都不太一樣,就像我習慣使用 for 迴圈。
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.