แบบฝึกหัด - สร้างโครงสร้างลูปที่ซ้อนกันสําหรับการคํานวณระดับนักเรียน
ในแบบฝึกหัดนี้ คุณเพิ่มอาร์เรย์สตริงเพื่อเก็บชื่อนักเรียนจากนั้นใช้โครงสร้างที่ซ้อนกัน foreach
ที่ทําซ้ําผ่านชื่อนักเรียนในลูปภายนอกและคะแนนของนักเรียนในลูปภายใน คุณเริ่มต้นด้วยการสร้าง studentNames
อาร์เรย์ และ foreach
ลูปที่ทําซ้ําผ่านองค์ประกอบอาร์เรย์ ถัดไป คุณย้ายรหัสที่ใช้ในการคํานวณเกรดของโซเฟียลงในบล็อกรหัสของลูป "ชื่อ" ในขั้นตอนสุดท้าย คุณใช้ตรรกะโค้ดที่ใช้ชื่อของนักเรียนเพื่อเข้าถึงอาร์เรย์คะแนน คํานวณคะแนนเฉลี่ยและเขียนเกรดไปยังคอนโซล งานโดยละเอียดที่คุณทําเสร็จสิ้นในระหว่างแบบฝึกหัดนี้ได้แก่:
สร้างอาร์เรย์ชื่อ: สร้างอาร์เรย์ชื่อนักเรียน
สร้างรอบนอก: สร้าง
foreach
รอบที่วนซ้ําผ่านชื่อนักเรียนพัฒนาบล็อกโค้ดรอบนอก: ย้ายตําแหน่งโค้ดที่คํานวณและรายงานคะแนนของโซเฟีย โดยวางไว้ในบล็อกโค้ดของลูป "ชื่อ"
อัปเดตการคํานวณและการรายงาน: อัปเดตรหัสที่ทําการคํานวณคะแนนนักเรียนโดยใช้อาร์เรย์คะแนนใหม่
สําคัญ
คุณจําเป็นต้องทําแบบฝึกหัดก่อนหน้านี้ของมอดูลนี้เสร็จสิ้นแล้ว "สร้างอาร์เรย์และลูป foreach" ก่อนที่คุณจะเริ่มแบบฝึกหัดนี้
สร้างอาร์เรย์ชื่อนักเรียนและลูป foreach ภายนอก
ในงานนี้คุณจะสร้างอาร์เรย์ชื่อนักเรียนและ foreach
ลูปที่ทําซ้ําผ่านชื่อนักเรียน
ตรวจสอบให้แน่ใจว่า คุณมีไฟล์ Program.cs เปิดในตัวแก้ไขรหัส Visual Studio
เลื่อนไปที่ด้านบนของไฟล์โค้ดของคุณ จากนั้นค้นหาบรรทัดโค้ดที่ใช้ในการประกาศอาร์เรย์คะแนน
สร้างบรรทัดรหัสที่ว่างเปล่าใต้การประกาศของอาร์เรย์คะแนน
บรรทัดรหัสที่ว่างเปล่าของคุณควรอยู่ระหว่างบรรทัดที่ใช้ในการตรวจนับอาร์เรย์ คะแนน และบรรทัดที่ใช้เพื่อประกาศ
sophiaSum
หากต้องการสร้างอาร์เรย์สตริงที่มี
studentNames
ชื่อซึ่งมีชื่อของนักเรียน ให้ป้อนรหัสต่อไปนี้:// Student names string[] studentNames = new string[] { "Sophia", "Andrew", "Emma", "Logan" };
โปรดสังเกตว่าคุณได้ระบุชื่อนักเรียนเป็นส่วนหนึ่งของการประกาศ
หากต้องการสร้าง
foreach
คําสั่งที่คุณสามารถใช้เพื่อทําซ้ําผ่านชื่อนักเรียน ให้ป้อนรหัสต่อไปนี้:foreach (string name in studentNames) { }
เพื่อตรวจสอบว่าการวนรอบของคุณ
foreach
วนซ้ําผ่านstudentNames
อาร์เรย์ตามที่คุณต้องการหรือไม่ ให้อัปเดตบล็อกรหัสของforeach
คําสั่งดังนี้:foreach (string name in studentNames) { Console.WriteLine($"{name}"); }
ใช้เวลาสักครู่เพื่อตรวจสอบโค้ดที่คุณสร้างขึ้น
// Student names string[] studentNames = new string[] { "Sophia", "Andrew", "Emma", "Logan" }; foreach (string name in studentNames) { Console.WriteLine($"{name}"); }
โค้ดของคุณจะใช้รอบนี้เป็น
foreach
รอบนอกของแอปพลิเคชันของคุณ ระหว่างแบบฝึกหัดนี้ คุณจะใช้ตรรกะต่อไปนี้ในแอปพลิเคชันของคุณ:สําหรับนักเรียนแต่ละคนใน
studentNames
อาร์เรย์ ใบสมัครของคุณจะ:- กําหนดให้นักเรียนปัจจุบัน
- เข้าถึงคะแนนของนักเรียนปัจจุบัน
- คํานวณเกรดของนักเรียนปัจจุบัน (ผลรวมและค่าเฉลี่ย)
- เขียนเกรดของนักเรียนปัจจุบันไปยังคอนโซล
อย่างไรก็ตามในตอนนี้คุณเพียงแค่เขียนชื่อของนักเรียนไปยังคอนโซล
บนเมนู ไฟล์ของ Visual Studio Code ให้คลิก บันทึก
ในมุมมอง Visual Studio Code EXPLORER ให้คลิกขวาที่ Starter จากนั้นเลือก เปิดในเทอร์มินัลแบบรวม
สําคัญ
พร้อมท์คําสั่งเทอร์มินัลต้องแสดงเส้นทางโฟลเดอร์สําหรับไฟล์ Program.cs ของคุณ
ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet build แล้วกด Enter
คําสั่ง
dotnet build
แนะนําคอมไพเลอร์เพื่อสร้างแอปพลิเคชัน ถ้าตรวจพบข้อผิดพลาดใดๆ ข้อผิดพลาดเหล่านั้นจะถูกรายงานถ้าคุณเห็นข้อความข้อผิดพลาดหรือคําเตือน คุณจําเป็นต้องแก้ไขปัญหาเหล่านั้นก่อนที่จะดําเนินการต่อ
ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet run แล้วกด Enter
ตรวจสอบว่าโค้ดของคุณสร้างเอาต์พุตต่อไปนี้:
Sophia Andrew Emma Logan Student Grade Sophia: 92.2 A- Press the Enter key to continue
หมายเหตุ
หากคุณไม่เห็นรายชื่อนักเรียนที่อยู่เหนือรายงานคะแนนของโซเฟีย ให้ย้อนกลับไปและตรวจสอบว่าคุณป้อนรหัสของคุณอย่างถูกต้อง
ในแผง TERMINAL เพื่อหยุดการใช้งานแอปพลิเคชันของคุณ ให้กดแป้น Enter
ปิดแผงเทอร์มินัล
คํานวณคะแนนของโซเฟียภายในรอบชื่อภายนอก
ในงานนี้ คุณจะย้ายรหัสที่คํานวณและรายงานคะแนนของโซเฟีย โดยวางไว้ในบล็อกรหัสของลูป "ชื่อ"
ใน Visual Studio Code Editor ให้ค้นหาตําแหน่งบรรทัดโค้ดที่ใช้ในการคํานวณและรายงานเกรดของโซเฟีย
int sophiaSum = 0; decimal sophiaScore; foreach (int score in sophiaScores) { // add the exam score to the sum sophiaSum += score; } sophiaScore = (decimal)sophiaSum / currentAssignments; Console.WriteLine("Student\t\tGrade\n"); Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA-");
หมายเหตุ
ขั้นตอนถัดไปของคุณคือการย้ายรหัสนี้จากตําแหน่งปัจจุบันไปยังบล็อกรหัสของการวนรอบ "ชื่อ"
foreach
ใช้การดําเนินการตัดและวางเพื่อย้ายรหัสที่คํานวณและรายงานเกรดของโซเฟียไปยังบล็อกรหัสของลูป "ชื่อ"
foreach
ถ้าคุณไม่แน่ใจเกี่ยวกับวิธีการตัดและวางในรหัส Visual Studio ให้ลองใช้วิธีการที่อธิบายไว้ในขั้นตอนต่อไปนี้:
เลือกรหัสที่ใช้ในการคํานวณและรายงานเกรดของโซเฟีย
คุณสามารถคลิกแล้วลากเพื่อเลือกบรรทัดรหัสได้
บนเมนูแก้ไขรหัส Visual Studio เลือกตัด
ในตัวแก้ไขรหัส Visual Studio ให้วางเคอร์เซอร์บนบรรทัดโค้ดว่างด้านล่างโค้ดต่อไปนี้:
Console.WriteLine($"{name}");
บนเมนูแก้ไขรหัส Visual Studio เลือกวาง
อัปเดตโค้ดของคุณเพื่อแสดงการเยื้องบรรทัดโค้ดที่เหมาะสม
เคล็ดลับ
Visual Studio Code มี
Format Document
คําสั่งที่สามารถใช้เพื่อทําให้การจัดรูปแบบโค้ดของคุณอัปเดตอยู่เสมอ คลิกขวาภายใน Visual Studio Code Editor จากนั้นเลือก จัดรูปแบบเอกสาร จากเมนูป็อปอัพ บนคอมพิวเตอร์ Windows แป้นพิมพ์ลัดสําหรับคําสั่งนี้คือ:Shift + Alt + F
คอมพิวเตอร์ Linux และ macOS ใช้ทางลัดทางเลือกเมื่อจําเป็นเพื่อหลีกเลี่ยงความขัดแย้งกับทางลัดระบบปฏิบัติการที่ให้มาตรวจสอบให้แน่ใจว่าการอัปเดตของคุณตรงกับโค้ดต่อไปนี้:
// Student names string[] studentNames = new string[] { "Sophia", "Andrew", "Emma", "Logan" }; foreach (string name in studentNames) { Console.WriteLine($"{name}"); int sophiaSum = 0; decimal sophiaScore; foreach (int score in sophiaScores) { // add the exam score to the sum sophiaSum += score; } sophiaScore = (decimal)sophiaSum / currentAssignments; Console.WriteLine("Student\t\tGrade\n"); Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA-"); } Console.WriteLine("Press the Enter key to continue"); Console.ReadLine();
โปรดสังเกตว่าณ จุดนี้รหัสของคุณจะคํานวณและรายงานคะแนนของโซเฟียโดยไม่
name
คํานึงถึงนักเรียนปัจจุบัน อีกไม่นานคุณจะจัดการเรื่องนั้นเองลบโค้ดต่อไปนี้:
Console.WriteLine($"{name}");
บนบรรทัดรหัสว่างที่คุณเพิ่งสร้าง ให้ป้อนรหัสต่อไปนี้:
if (name == "Sophia") {
สร้างบรรทัดโค้ดว่างหลังโค้ดที่ใช้เขียนเกรดของโซเฟียไปยังคอนโซล
เมื่อต้องการปิดบล็อกรหัสของ
if
คําสั่ง ให้ป้อนโค้ดต่อไปนี้:}
อัปเดตโค้ดของคุณเพื่อแสดงการเยื้องบรรทัดโค้ดที่เหมาะสม
เคล็ดลับ
Format Document
ใช้คําสั่ง เพื่อให้การจัดรูปแบบโค้ดของคุณอัปเดตอยู่เสมอ คลิกขวาภายในแผง Visual Studio Code Editor จากนั้นเลือก จัดรูปแบบเอกสาร จากเมนูป็อปอัพใช้เวลาสักครู่ในการตรวจสอบรหัสของคุณ
โค้ดของคุณควรตรงกับโค้ดต่อไปนี้:
// initialize variables - graded assignments int currentAssignments = 5; int[] sophiaScores = new int[] { 90, 86, 87, 98, 100 }; int[] andrewScores = new int[] { 92, 89, 81, 96, 90 }; int[] emmaScores = new int[] { 90, 85, 87, 98, 68 }; int[] loganScores = new int[] { 90, 95, 87, 88, 96 }; // Student names string[] studentNames = new string[] {"Sophia", "Andrew", "Emma", "Logan"}; foreach (string name in studentNames) { if (name == "Sophia") { int sophiaSum = 0; decimal sophiaScore; foreach (int score in sophiaScores) { // add the exam score to the sum sophiaSum += score; } sophiaScore = (decimal)(sophiaSum) / currentAssignments; Console.WriteLine("Student\t\tGrade\n"); Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA-"); } } Console.WriteLine("Press the Enter key to continue"); Console.ReadLine();
โปรดสังเกตว่า
if
คําสั่งภายในขีดจํากัดบล็อกรหัสภายนอกforeach
ของคุณซึ่งเกรดของนักเรียนถูกคํานวณและรายงาน นี่ไม่ใช่สิ่งที่คุณต้องการ แต่เป็นขั้นตอนในทิศทางที่ถูกต้องบนเมนู ไฟล์ของ Visual Studio Code ให้คลิก บันทึก
ในมุมมอง Visual Studio Code EXPLORER ให้คลิกขวาที่ Starter จากนั้นเลือก เปิดในเทอร์มินัลแบบรวม
สําคัญ
พร้อมท์คําสั่งเทอร์มินัลต้องแสดงเส้นทางโฟลเดอร์สําหรับไฟล์ Program.cs ของคุณ
ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet build แล้วกด Enter
คําสั่ง
dotnet build
แนะนําคอมไพเลอร์เพื่อสร้างแอปพลิเคชัน ถ้าตรวจพบข้อผิดพลาดใดๆ ข้อผิดพลาดเหล่านั้นจะถูกรายงานถ้าคุณเห็นข้อความข้อผิดพลาดหรือคําเตือน คุณจําเป็นต้องแก้ไขปัญหาเหล่านั้นก่อนที่จะดําเนินการต่อ
ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet run แล้วกด Enter
ตรวจสอบว่าโค้ดของคุณสร้างเอาต์พุตต่อไปนี้:
Student Grade Sophia: 92.2 A-
หมายเหตุ
ถ้าคุณยังคงเห็นรายชื่อนักเรียนที่แสดงอยู่เหนือรายงานคะแนนของโซเฟีย ตรวจสอบให้แน่ใจว่าคุณได้บันทึกการอัปเดตของคุณแล้ว
ในแผง TERMINAL เพื่อหยุดการใช้งานแอปพลิเคชันของคุณ ให้กดแป้น Enter
ปิดแผงเทอร์มินัล
อัปเดตรอบซ้อนเพื่อคํานวณคะแนนของนักเรียนทั้งหมด
ในงานนี้ คุณจะอัปเดตรหัสที่ทําการคํานวณคะแนนนักเรียนโดยใช้อาร์เรย์คะแนนใหม่ คุณจะเริ่มต้นโดยการสร้างอาร์เรย์ที่ชื่อ studentScores
ว่าสามารถใช้เพื่อเก็บคะแนนของนักเรียนทุกคน ถัดไป คุณจะสร้างโครงสร้างif .. elseif
ที่ใช้ชื่อของนักเรียนปัจจุบันเพื่อกําหนดอาร์เรย์คะแนนของนักเรียนให้กับstudentScores
ในท้ายที่สุด คุณจะอัปเดตโค้ดที่คํานวณและรายงานเกรดของนักเรียน เมื่อคุณทําเสร็จแล้ว รายงานควรมีชื่อและคะแนนเป็นตัวเลขสําหรับนักเรียนทุกคน
สร้างบรรทัดรหัสที่ว่างเปล่าใต้การประกาศของ
studentNames
อาร์เรย์บรรทัดว่างควรอยู่เหนือคําสั่งภายนอก
foreach
หากต้องการสร้างอาร์เรย์จํานวนเต็มที่คุณสามารถใช้เพื่อเก็บคะแนนของนักเรียนปัจจุบัน ให้ป้อนรหัสต่อไปนี้:
int[] studentScores = new int[10];
โปรดสังเกตว่ารหัสนี้ไม่ได้กําหนดค่าใด ๆ กับอาร์เรย์ที่จุดนี้ คุณเพียงแค่ระบุว่าอาร์เรย์สามารถประกอบด้วยองค์ประกอบ 10 รายการได้
สร้างบรรทัดโค้ดว่างที่ด้านบนของบล็อกรหัสภายนอก
foreach
บรรทัดที่ว่างเปล่าควรอยู่ภายใน
foreach
บล็อกรหัสและเหนือif
คําสั่งที่ประเมินว่าเท่ากับโซเฟียหรือไม่name
หากต้องการสร้างตัวแปรสตริงที่จะใช้เพื่อเก็บชื่อของนักเรียนปัจจุบัน ให้ป้อนรหัสต่อไปนี้:
string currentStudent = name;
หมายเหตุ
name
คุณสามารถใช้ เพื่อติดตามชื่อของนักเรียนปัจจุบันในขณะที่คุณทําซ้ําในอาร์เรย์ชื่อ แต่การใช้currentStudent
จะทําให้ง่ายต่อการเข้าใจตรรกะของโค้ดเมื่อคุณสร้างแอปพลิเคชันของคุณในขั้นตอนถัดไปหากต้องการแทนที่
currentStudent
name
ในif
คําสั่งที่ประเมินว่าเท่ากับโซเฟียหรือไม่name
ให้อัปเดตโค้ดของคุณดังนี้:if (currentStudent == "Sophia")
ย้ายรหัสที่คํานวณและรายงานคะแนนของโซเฟียไปยังตําแหน่งที่ตั้งด้านล่างของบล็อกรหัส
คุณกําลังย้ายรหัสทั้งหมดที่อยู่ในบล็อกโค้ดไปยังตําแหน่งที่ตั้งด้านล่างบล็อกรหัส เหตุผลในการทําเช่นนี้จะกลายเป็นชัดเจนในช่วงสองสามขั้นตอนถัดไป
ตรวจสอบว่าโค้ดในบล็อกโค้ดภายนอก
foreach
ตรงกับโค้ดต่อไปนี้:{ string currentStudent = name; if (currentStudent == "Sophia") { } int sophiaSum = 0; decimal sophiaScore; foreach (int score in sophiaScores) { // add the exam score to the sum sophiaSum += score; } sophiaScore = (decimal)sophiaSum / currentAssignments; Console.WriteLine("Student\t\tGrade\n"); Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA-"); }
sophiaScores
เพื่อกําหนดอาร์เรย์ เป็นstudentScores
เมื่อcurrentStudent == "Sophia"
อัปเดตรหัสคําสั่งของคุณif
ดังต่อไปนี้:if (currentStudent == "Sophia") studentScores = sophiaScores;
โปรดสังเกตว่าคุณได้ลบวงเล็บปีกกาออกจาก
if
บล็อกรหัสคําสั่งในระหว่างการอัปเดตรหัสนี้เมื่อต้องการเพิ่ม
else if
คําสั่งที่กําหนดandrewScores
อาร์เรย์ ให้studentScores
เมื่อcurrentStudent == "Andrew"
ใส่รหัสต่อไปนี้:else if (currentStudent == "Andrew") studentScores = andrewScores;
สร้างคําสั่งอื่น
else if
เพื่อกําหนดemmaScores
อาร์เรย์ ที่จะstudentScores
เมื่อcurrentStudent == "Emma"
else if
สร้างคําสั่ง เพื่อกําหนดloganScores
อาร์เรย์ ที่จะstudentScores
เมื่อcurrentStudent == "Logan"
ตรวจสอบให้แน่ใจว่าบล็อกโค้ดของคุณ
foreach
ตรงกับโค้ดต่อไปนี้:foreach (string name in studentNames) { string currentStudent = name; if (currentStudent == "Sophia") studentScores = sophiaScores; else if (currentStudent == "Andrew") studentScores = andrewScores; else if (currentStudent == "Emma") studentScores = emmaScores; else if (currentStudent == "Logan") studentScores = loganScores; int sophiaSum = 0; decimal sophiaScore; foreach (int score in sophiaScores) { // add the exam score to the sum sophiaSum += score; } sophiaScore = (decimal)sophiaSum / currentAssignments; Console.WriteLine("Student\t\tGrade\n"); Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA-"); }
ถัดไป คุณจําเป็นต้องอัปเดตลูปภายใน
foreach
เพื่อใช้studentScores
และ "ไม่สนับสนุน" ตัวแปรที่คุณใช้ในการคํานวณของคุณหากต้องการแทนที่
studentScores
sophiaScores
ในการforeach
วนรอบที่ทําซ้ําผ่านอาร์เรย์คะแนน ให้อัปเดตโค้ดของคุณดังนี้:foreach (int score in studentScores)
หากต้องการแทนที่การประกาศตัวแปรเฉพาะของโซเฟียด้วยชื่อทั่วไปมากขึ้น ให้อัปเดตโค้ดของคุณดังนี้:
int sumAssignmentScores = 0; decimal currentStudentGrade = 0;
การประกาศตัวแปรสองตัวนี้มีจุดมุ่งหมายเพื่อแทนที่การประกาศตัวแปรเฉพาะของโซเฟียต่อไปนี้:
int sophiaSum = 0; decimal sophiaScore;
เมื่อต้องการนําชื่อตัวแปรใหม่ไปใช้กับสมการที่ใช้ในการหาผลรวมคะแนนของนักเรียน ให้อัปเดตบล็อกรหัสภายใน
foreach
ของคุณดังนี้:foreach (int score in studentScores) { // add the exam score to the sum sumAssignmentScores += score; }
เมื่อต้องการนําชื่อตัวแปรใหม่ไปใช้กับสมการที่ใช้ในการคํานวณคะแนนเฉลี่ย ให้อัปเดตโค้ดของคุณดังนี้:
currentStudentGrade = (decimal)(sumAssignmentScores) / currentAssignments;
ใช้เวลาสักครู่ในการตรวจสอบรหัสของคุณ
int[] studentScores = new int[10]; foreach (string name in studentNames) { string currentStudent = name; if (currentStudent == "Sophia") studentScores = sophiaScores; else if (currentStudent == "Andrew") studentScores = andrewScores; else if (currentStudent == "Emma") studentScores = emmaScores; else if (currentStudent == "Logan") studentScores = loganScores; // initialize/reset the sum of scored assignments int sumAssignmentScores = 0; // initialize/reset the calculated average of exam + extra credit scores decimal currentStudentGrade = 0; foreach (int score in studentScores) { // add the exam score to the sum sumAssignmentScores += score; } currentStudentGrade = (decimal)(sumAssignmentScores) / currentAssignments; Console.WriteLine("Student\t\tGrade\n"); Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA-"); }
รอบที่
foreach
ซ้อนกันของคุณจะทําซ้ําชื่อนักเรียนและใช้คะแนนของนักเรียนเพื่อคํานวณคะแนน แต่คุณยังจําเป็นต้องอัปเดตรหัสที่ใช้ในการสร้างรายงานคะแนนหากต้องการพิมพ์ชื่อนักเรียนและคะแนนจากการคํานวณไปยังคอนโซล ให้อัปเดตคําสั่งที่สอง
Console.WriteLine
ดังนี้:Console.WriteLine($"{currentStudent}\t\t{currentStudentGrade}\t?");
โปรดสังเกตว่ารหัสนี้ได้แทนที่การกําหนดเกรดตัวอักษรด้วย "?" แล้ว คุณจะทํางานในการมอบหมายเกรดตัวอักษรโดยอัตโนมัติในแบบฝึกหัดถัดไป
Console.WriteLine
ย้ายคําสั่งที่ใช้ในการเขียนป้ายชื่อคอลัมน์ของรายงานคะแนนของคุณไปยังตําแหน่งเหนือลูปภายนอกforeach
คุณไม่ต้องการทําซ้ําส่วนหัวของคอลัมน์สําหรับคะแนนของนักเรียนแต่ละคน ดังนั้นคุณจึงย้ายรหัสนี้ไปยังจุดด้านบนของรอบนอก
foreach
บนเมนู ไฟล์ของ Visual Studio Code ให้คลิก บันทึก
ใช้เวลาสักครู่เพื่อตรวจสอบรหัสแอปพลิเคชันของคุณ
แอปพลิเคชันแบบเต็มของคุณควรตรงกับโค้ดต่อไปนี้:
// initialize variables - graded assignments int currentAssignments = 5; int[] sophiaScores = new int[] { 90, 86, 87, 98, 100 }; int[] andrewScores = new int[] { 92, 89, 81, 96, 90 }; int[] emmaScores = new int[] { 90, 85, 87, 98, 68 }; int[] loganScores = new int[] { 90, 95, 87, 88, 96 }; // Student names string[] studentNames = new string[] { "Sophia", "Andrew", "Emma", "Logan" }; int[] studentScores = new int[10]; // Write the Report Header to the console Console.WriteLine("Student\t\tGrade\n"); foreach (string name in studentNames) { string currentStudent = name; if (currentStudent == "Sophia") studentScores = sophiaScores; else if (currentStudent == "Andrew") studentScores = andrewScores; else if (currentStudent == "Emma") studentScores = emmaScores; else if (currentStudent == "Logan") studentScores = loganScores; // initialize/reset the sum of scored assignments int sumAssignmentScores = 0; // initialize/reset the calculated average of exam + extra credit scores decimal currentStudentGrade = 0; foreach (int score in studentScores) { // add the exam score to the sum sumAssignmentScores += score; } currentStudentGrade = (decimal)(sumAssignmentScores) / currentAssignments; Console.WriteLine($"{currentStudent}\t\t{currentStudentGrade}\t?"); }
ด้วยโค้ดที่สร้างรายงานคะแนนของนักเรียนอัปเดตแล้ว จะปรากฏขึ้นว่าคุณพร้อมที่จะตรวจสอบงานของคุณ
ตรวจสอบงานของคุณ
สําหรับงานนี้ คุณจะเรียกใช้แอปพลิเคชันเพื่อตรวจสอบว่าตรรกะรหัสของคุณทํางานตามที่คาดไว้หรือไม่
ตรวจสอบให้แน่ใจว่าคุณได้บันทึกการเปลี่ยนแปลงของคุณไปยังไฟล์ Program.cs
ในมุมมอง Visual Studio Code EXPLORER ให้คลิกขวาที่ Starter จากนั้นเลือก เปิดในเทอร์มินัลแบบรวม
ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet build แล้วกด Enter
ถ้าคุณเห็นข้อความข้อผิดพลาดหรือคําเตือน คุณจําเป็นต้องแก้ไขปัญหาเหล่านั้นก่อนที่จะดําเนินการต่อ
ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet run แล้วกด Enter
ตรวจสอบว่าโค้ดของคุณสร้างเอาต์พุตต่อไปนี้:
Student Grade Sophia 92.2 ? Andrew 89.6 ? Emma 85.6 ? Logan 91.2 ? Press the Enter key to continue
ในแผง TERMINAL เพื่อหยุดการใช้งานแอปพลิเคชันของคุณ ให้กดแป้น Enter
ปิดแผงเทอร์มินัล
ขอแสดงความยินดีแอปพลิเคชันของคุณมานานแล้วจากจุดที่คุณเริ่มต้น คุณกําลังใช้อาร์เรย์และ foreach
การเกิดซ้ําที่มีประสิทธิภาพ และคุณได้รวม if
คําสั่งที่เปิดใช้งานรหัสของคุณเพื่อเลือกอาร์เรย์คะแนนที่ถูกต้อง