練習 - 實作 foreach 陳述式
假設您在製造公司工作。 公司需要您完成倉儲的清查,以判斷準備好出貨的產品數目。 除了完成的產品總數之外,您還需要報告倉儲中每個個別儲位中儲存的已完成產品數目和累計總數。 此累計總數將用來建立稽核記錄,以便您可以再次檢查您的工作並識別是否有「減少問題」。
使用 foreach 在陣列中執行迴圈
foreach
陳述式提供了一個簡單且清楚的方法來逐一查看陣列中的元素。 foreach
陳述試會以遞增的索引順序,處理陣列元素,從索引 0 開始,並以索引長度 - 1 結束。 它會使用暫時變數來保存與目前反覆項目相關聯的陣列元素值。 每個反覆項目都會執行位於 foreach
宣告下方的程式碼區塊。
以下是簡單的範例:
string[] names = { "Rowena", "Robin", "Bao" };
foreach (string name in names)
{
Console.WriteLine(name);
}
在 foreach
關鍵字底下,包含 Console.WriteLine(name);
的程式碼區塊將會針對 names
陣列的每個元素執行一次。 當 .NET 執行階段針對陣列的每個元素執行迴圈時,儲存在 names
陣列之目前元素中的值會被指派至暫時變數 name
,以供在程式碼區塊內輕鬆存取。
如果您已執行該程式碼,您會看到下列結果。
Rowena
Robin
Bao
使用 foreach
陳述式來建立倉庫的每個儲位中目前所有項目的總和。
建立並初始化 int 陣列
請確定您已在 Visual Studio Code 中開啟空的 Program.cs 檔案。
如有必要,請開啟 Visual Studio Code,然後完成下列步驟,以在編輯器中備妥 Program.cs 檔案:
在 [檔案] 功能表上,選取 [開啟資料夾]。
使用 [開啟資料夾] 對話方塊瀏覽至 CsharpProjects 資料夾,然後加以開啟。
在 Visual Studio Code 的 [總管] 窗格中,選取 [Program.cs]。
在 Visual Studio Code [選取項目] 功能表上,選取 [全部選取],然後按 [刪除] 鍵。
若要建立類型
int
的陣列,以儲存每個儲位中完成的產品數目,請輸入下列程式碼:int[] inventory = { 200, 450, 700, 175, 250 };
新增 foreach 陳述式以在陣列中逐一查看
若要建立逐一查看
inventory
陣列每個元素的foreach
陳述式,請輸入下列程式碼:foreach (int items in inventory) { }
請注意,
foreach
陳述式會暫時將目前陣列元素的值指派給名為items
的int
變數。確定您的程式碼符合下列項目:
int[] inventory = { 200, 450, 700, 175, 250 }; foreach (int items in inventory) { }
新增變數以對陣列中每個元素的值進行加總
將游標置於
foreach
陳述式上方的空白程式碼上。若要宣告代表倉儲中所有完成產品總和的新變數,請輸入下列程式碼:
int sum = 0;
請確定您在
foreach
陳述式 外部 宣告變數。將游標置於
foreach
陳述式的程式碼區塊內。若要將儲存在
items
中的目前值新增至sum
變數,請輸入下列程式碼:sum += items;
請確定您的程式碼符合下列項目:
int[] inventory = { 200, 450, 700, 175, 250 }; int sum = 0; foreach (int items in inventory) { sum += items; }
顯示總和的最終值
在
foreach
陳述式的程式碼區塊下方建立空白程式碼。若要報告庫存項目的最終總和,請輸入下列程式碼:
Console.WriteLine($"We have {sum} items in inventory.");
確定您的程式碼符合下列項目:
int[] inventory = { 200, 450, 700, 175, 250 }; int sum = 0; foreach (int items in inventory) { sum += items; } Console.WriteLine($"We have {sum} items in inventory.");
在 Visual Studio Code 的 [檔案] 功能表上,按一下 [儲存]。
在 [總管] 面板中,若要在 TestProject 資料夾位置開啟 [終端],請以滑鼠右鍵按一下 [TestProject],然後選取 [在整合式終端機中開啟]。
在終端命令提示字元中,請輸入 dotnet run,然後按 Enter 鍵。
We have 1775 items in inventory.
建立變數以保存目前的儲位號碼並顯示累計總數
為了滿足您清查報告專案的最終需求,您必須建立能保存 foreach
陳述式目前反覆項目的變數,以顯示儲位及該儲位中已完成項目的計數,以及目前已記入儲位中所有項目的累計總數。
在
foreach
陳述式上方建立空白的程式碼行。若要宣告已初始化為
0
的名為bin
的int
變數,請輸入下列程式碼:int bin = 0;
您將使用
bin
來儲存目前正在處理其清查的儲位數目。在
foreach
程式碼區塊內,若要在每次執行程式碼區塊時遞增bin
,請輸入下列程式碼:bin++;
請注意,您可以使用
++
運算子,將變數的值遞增 1。 這是bin = bin + 1
的捷徑。若要報告儲位編號、儲位中已完成產品的數目,以及已完成產品的累計總數,請在
foreach
程式碼區塊後面的bin++;
輸入下列程式碼:Console.WriteLine($"Bin {bin} = {items} items (Running total: {sum})");
此程式碼會使用您的計數器變數
bin
、暫時foreach
變數items
和sum
變數,以良好的格式訊息報告庫存的目前狀態。確定您的程式碼符合下列項目:
int[] inventory = { 200, 450, 700, 175, 250 }; int sum = 0; int bin = 0; foreach (int items in inventory) { sum += items; bin++; Console.WriteLine($"Bin {bin} = {items} items (Running total: {sum})"); } Console.WriteLine($"We have {sum} items in inventory.");
將變更儲存至 Program.cs 檔案,然後執行應用程式。
您應該會看見下列輸出:
Bin 1 = 200 items (Running total: 200) Bin 2 = 450 items (Running total: 650) Bin 3 = 700 items (Running total: 1350) Bin 4 = 175 items (Running total: 1525) Bin 5 = 250 items (Running total: 1775) We have 1775 items in inventory.
概括回顧
以下是您在此單元中學到且須熟記的 foreach
陳述式和遞增值的一些事項:
- 使用
foreach
陳述式來逐一查看陣列中的每個元素,針對陣列中的每個元素執行相關聯的程式碼區塊一次。 foreach
陳述式會將陣列中目前元素的值設定至暫時變數,您可在程式碼區塊的本文中使用它。- 使用
++
遞增運算子來對變數的目前值新增 1。