แบบฝึกหัด - ใช้คําสั่ง 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
ตรวจสอบให้แน่ใจว่า คุณมีไฟล์ Program.cs ที่ว่างเปล่าเปิดอยู่ในรหัส Visual Studio
หากจําเป็น ให้เปิด Visual Studio Code แล้วทําตามขั้นตอนต่อไปนี้เพื่อเตรียมไฟล์ Program.cs ในตัวแก้ไข:
บนเมนู ไฟล์ เลือก เปิดโฟลเดอร์
ใช้กล่องโต้ตอบ เปิดโฟลเดอร์ เพื่อนําทางไปยัง และจากนั้นเปิดโฟลเดอร์ CsharpProjects
ในมุมมอง Visual Studio Code EXPLORER ให้เลือก Program.cs
บนเมนู การเลือก รหัส Visual Studio เลือก เลือกทั้งหมด แล้วกดปุ่มลบ
เมื่อต้องการสร้างอาร์เรย์ของชนิด
intที่จัดเก็บจํานวนของผลิตภัณฑ์สําเร็จรูปในแต่ละช่องเก็บ ให้ป้อนรหัสต่อไปนี้:int[] inventory = { 200, 450, 700, 175, 250 };
เพิ่มคําสั่ง foreach เพื่อทําซ้ําคําสั่งผ่านอาร์เรย์
หากต้องการสร้าง
foreachคําสั่งที่ทําซ้ําผ่านแต่ละองค์ประกอบของinventoryอาร์เรย์ ให้ป้อนรหัสต่อไปนี้:foreach (int items in inventory) { }โปรดสังเกตว่า
foreachคําสั่ง กําหนดค่าขององค์ประกอบอาร์เรย์ปัจจุบันชั่วคราวให้กับตัวแปรที่intชื่อว่าitemsตรวจสอบให้แน่ใจว่าโค้ดของคุณตรงกับรายการต่อไปนี้:
int[] inventory = { 200, 450, 700, 175, 250 }; foreach (int items in inventory) { }
เพิ่มตัวแปรเพื่อรวมค่าของแต่ละองค์ประกอบในอาร์เรย์
วางตําแหน่งเคอร์เซอร์บนบรรทัดรหัสที่ว่างเปล่าเหนือ
foreachคําสั่งเมื่อต้องการตรวจนับตัวแปรใหม่ที่แสดงผลรวมของผลิตภัณฑ์สําเร็จรูปทั้งหมดในคลังสินค้าของคุณ ให้ป้อนรหัสต่อไปนี้
int sum = 0;ตรวจสอบให้แน่ใจว่าคุณได้ประกาศตัวแปรภายนอก
foreachคําสั่งแล้ววางตําแหน่งเคอร์เซอร์ภายในบล็อกรหัสของ
foreachคําสั่งหากต้องการเพิ่มค่าปัจจุบันที่จัดเก็บไว้ใน
itemssumตัวแปร ให้ป้อนรหัสต่อไปนี้: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 ให้คลิก บันทึก
ในมุมมอง EXPLORER เมื่อต้องการเปิดเทอร์มินัลที่ตําแหน่งที่ตั้งโฟลเดอร์ TestProject ของคุณ ให้คลิกขวาที่ TestProject จากนั้นเลือกเปิดในเทอร์มินัลรวม
ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet run แล้วกด Enter
We have 1775 items in inventory.
สร้างตัวแปรเพื่อเก็บหมายเลขช่องเก็บปัจจุบันและแสดงผลรวมสะสม
เพื่อปฏิบัติตามข้อกําหนดสุดท้ายของโครงการรายงานสินค้าคงคลังของคุณ คุณจะต้องสร้างตัวแปรที่จะเก็บการเกิดซ้ําปัจจุบันของ foreach คําสั่ง เพื่อให้คุณสามารถแสดงช่องเก็บและจํานวนสินค้าสําเร็จรูปในช่องเก็บนั้น พร้อมกับผลรวมสะสมของรายการทั้งหมดในช่องเก็บที่คิดบัญชีไว้
สร้างบรรทัดรหัสว่างเหนือ
foreachคําสั่งเมื่อต้องการตรวจนับ
intตัวแปรที่มีbinชื่อว่า ที่มีการเตรียมใช้งานเป็น0ให้ป้อนรหัสต่อไปนี้: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 ไปยังค่าปัจจุบันของตัวแปร