แบบฝึกหัด - สร้างและทดสอบรอบสําหรับการป้อนข้อมูลสัตว์เลี้ยงใหม่
ในแบบฝึกหัดนี้ คุณพัฒนารหัสที่ควบคุมการป้อนข้อมูลของข้อมูลอาร์เรย์ใหม่ourAnimals คุณคํานวณค่าเริ่มต้นของตัวแปรควบคุมรอบของคุณและสร้างลูปที่รวบรวมข้อมูลเฉพาะของผู้ใช้สําหรับสัตว์ งานโดยละเอียดที่คุณทําเสร็จสิ้นในระหว่างแบบฝึกหัดนี้ได้แก่:
- คํานวณ petCount: เขียนโค้ดที่นับจํานวนสัตว์เลี้ยงใน
ourAnimalsอาร์เรย์ ที่มีข้อมูลที่กําหนด - ข้อความตามเงื่อนไข: เขียนโค้ดเพื่อแสดงผลลัพธ์ข้อความเมื่อ
petCountน้อยกว่าmaxPets - รอบนอก: สร้างโครงสร้างลูปที่จะใช้สําหรับการป้อนข้อมูลอาร์เรย์ใหม่
ourAnimals - เกณฑ์การออก: เขียนโค้ดที่ประเมินเงื่อนไขการออกสําหรับรอบ "ใส่อาร์เรย์ข้อมูลของ Animals ใหม่ของเรา"
- การทดสอบการตรวจสอบ: ทําการทดสอบการตรวจสอบสําหรับโค้ดที่คุณพัฒนาในแบบฝึกหัดนี้
สําคัญ
คุณต้องทําแบบฝึกหัดก่อนหน้านี้ในโมดูลนี้ให้เสร็จสมบูรณ์ก่อนที่จะเริ่มแบบฝึกหัดนี้
นับจํานวนของสัตว์เลี้ยงในอาร์เรย์ OurAnimals
ในงานนี้ คุณสร้างเกณฑ์การออกจากระบบสําหรับการวนรอบรายการข้อมูลของคุณ และคุณสามารถสร้าง for การวนรอบที่สามารถใช้เพื่อนับจํานวนสัตว์เลี้ยงใน ourAnimals ที่มีข้อมูลที่กําหนด
ตรวจสอบให้แน่ใจว่า Visual Studio Code เปิดอยู่ และไฟล์ Program.cs ของคุณสามารถมองเห็นได้ใน ตัวแก้ไข
ค้นหาคําสั่ง
switch(menuSelection)แล้วค้นหาบรรทัดcase "2":รหัสค้นหาคําสั่ง
Console.WriteLine()ที่แสดงข้อความ "เร็วๆ นี้" แล้วแทนที่ด้วยบรรทัดรหัสว่างบนบรรทัดรหัสที่ว่างเปล่าที่คุณสร้างขึ้นเพื่อตรวจนับ
anotherPetตัวแปร และpetCountให้ป้อนรหัสต่อไปนี้:string anotherPet = "y"; int petCount = 0;ตัวแปรทั้งสองนี้ควบคุมการเกิดซ้ําของ
whileลูปที่ใช้ในการป้อนข้อมูลสัตว์เลี้ยงใหม่ คุณเริ่มต้นตัวแปรทั้งสองเป็นส่วนหนึ่งของการประกาศanotherPetถูกเตรียมใช้งานด้วยค่าyก่อนจุดเริ่มต้นของการwhileวนรอบ ซึ่งจะได้รับค่าที่ผู้ใช้กําหนดหรือynภายในการwhileวนรอบpetCountแสดงจํานวนของสัตว์ที่มีลักษณะสัตว์เลี้ยงที่กําหนด ซึ่งจะได้รับการกําหนดค่าจากการคํานวณนอกลูปของคุณและwhileจะเพิ่มขึ้นภายใน1ลูwhileปทุกครั้งที่มีการเพิ่มสัตว์ตัวใหม่ลงในourAnimalsอาร์เรย์
สําคัญ
ขอบเขตของตัวแปรของคุณควรแคบที่สุดเท่าที่เป็นไปได้ ในแอปพลิเคชัน Contoso Pets คุณสามารถกําหนดขอบเขต
petCountที่ระดับแอปพลิเคชันแทนที่จะกําหนดขอบเขตไปยังcase "2":บล็อกโค้ด ขอบเขตที่ใหญ่กว่าจะช่วยให้คุณสามารถเข้าถึงpetCountได้จากทุกที่ในแอปพลิเคชัน หากมีpetCountการกําหนดขอบเขตในระดับแอปพลิเคชัน คุณสามารถกําหนดค่าได้เมื่อคุณสร้างข้อมูลตัวอย่างและจัดการค่าโดยใช้โปรแกรมตลอดส่วนที่เหลือของแอปพลิเคชัน ตัวอย่างเช่นเมื่อคุณพบบ้านสําหรับสัตว์เลี้ยงและนําสัตว์เลี้ยงออกจากourAnimalsอาร์เรย์คุณสามารถลดpetCount1ได้ คําถามคือ คุณควรกําหนดขอบเขตตัวแปรเมื่อคุณไม่แน่ใจว่าจะใช้ในส่วนอื่น ๆ ของแอปพลิเคชันของคุณหรือไม่ ในกรณีนี้ เป็นการล่อลวงให้กําหนดขอบเขตpetCountในระดับแอปพลิเคชัน แม้ว่าคุณจะไม่ได้ใช้ที่อื่นก็ตาม ท้ายสุด การกําหนดpetCountขอบเขตที่ระดับแอปพลิเคชันช่วยให้แน่ใจว่าจะพร้อมใช้งานถ้าคุณตัดสินใจที่จะใช้ที่อื่น บางทีคุณอาจกําหนดขอบเขตตัวแปรอื่น ๆ ในระดับแอปพลิเคชันได้เช่นกัน ด้วยวิธี ตัวแปรของคุณจะอยู่ในขอบเขตและสามารถเข้าถึงได้เสมอ ดังนั้นทําไมตัวแปรขอบเขตจึงไม่อยู่ในระดับแอปพลิเคชันเมื่อคุณคิดว่าอาจมีการใช้ตัวแปรเหล่านี้ในภายหลังในแอปพลิเคชัน การกําหนดขอบเขตตัวแปรในระดับที่สูงกว่าที่จําเป็นอาจทําให้เกิดปัญหาได้ ขอบเขตที่ยกระดับขึ้นจะช่วยเพิ่มความต้องการทรัพยากรของแอปพลิเคชันของคุณและอาจเปิดเผยแอปพลิเคชันของคุณกับความเสี่ยงด้านความปลอดภัยที่ไม่จําเป็น เมื่อแอปพลิเคชันของคุณมีขนาดใหญ่ขึ้นและซับซ้อนมากขึ้น แอปพลิเคชันดังกล่าวต้องการทรัพยากรเพิ่มเติม โทรศัพท์และคอมพิวเตอร์จัดสรรหน่วยความจําสําหรับทรัพยากรเหล่านี้เมื่ออยู่ในขอบเขต เมื่อแอปพลิเคชันของคุณกลายเป็น "โลกแห่งความจริง" มากขึ้น แอปพลิเคชันเหล่านี้จะสามารถเข้าถึงได้มากขึ้น แอปพลิเคชันมักจะสามารถเข้าถึงได้จากระบบคลาวด์หรือแอปพลิเคชันอื่น ๆ การทบต้นปัญหาเหล่านี้ แอปพลิเคชันมักจะทํางานอยู่เมื่อไม่ได้ใช้งาน สิ่งสําคัญคือต้องรักษาความต้องการทรัพยากรของแอปพลิเคชันให้อยู่ภายใต้การควบคุมและฟุตพริ้นท์ความปลอดภัยให้น้อยที่สุด แม้ว่าระบบปฏิบัติการในปัจจุบันนี้สามารถจัดการทรัพยากรและการรักษาความปลอดภัยแอปพลิเคชันได้แต่ก็เป็นวิธีที่ดีที่สุดที่จะทําให้ตัวแปรของคุณมีขอบเขตในระดับที่จําเป็นจริง ในแอป Contoso Pets ของคุณ ถ้าคุณตัดสินใจที่จะใช้petCountอย่างกว้างขวางมากขึ้นภายในแอปพลิเคชัน คุณสามารถอัปเดตโค้ดของคุณไปยังขอบเขตpetCountที่สูงกว่าได้ อย่าลืมเก็บตัวแปรของคุณให้แคบที่สุดเท่าที่เป็นไปได้ และเพิ่มขอบเขตเมื่อจําเป็นเท่านั้นบนบรรทัดรหัสด้านล่างการรายงานตัวแปรของคุณ หากต้องการสร้างการวนรอบที่วนซ้ําผ่านสัตว์ใน
ourAnimalsอาร์เรย์ ให้ป้อนรหัสต่อไปนี้:for (int i = 0; i < maxPets; i++) { }รหัสนี้ควรมีลักษณะที่คุ้นเคย คุณจะใช้การวนรอบนี้
forในแต่ละครั้งที่คุณทําซ้ําผ่านourAnimalsอาร์เรย์ภายในบล็อกรหัสของรอบของเรา
forเพื่อตรวจสอบว่ามีการกําหนดลักษณะของข้อมูลสัตว์เลี้ยงให้กับสัตว์หรือไม่ให้ป้อนรหัสต่อไปนี้:if (ourAnimals[i, 0] != "ID #: ") { }อีกครั้ง รหัสนี้ควรมีลักษณะที่คุ้นเคย คุณจะใช้คําสั่งนี้
ifในแต่ละครั้งที่คุณตรวจสอบว่าได้กําหนดลักษณะของสัตว์เลี้ยงแล้วหรือไม่ภายในบล็อกรหัสของ
ifที่คุณสร้างขึ้นเพื่อเพิ่มทีละpetCount1 ให้ป้อนรหัสต่อไปนี้:petCount += 1;ใช้เวลาสักครู่ในการตรวจสอบรอบที่
forเสร็จสมบูรณ์ของคุณรอบ ที่
forเสร็จสมบูรณ์ของคุณควรมีลักษณะเหมือนกับโค้ดต่อไปนี้:for (int i = 0; i < maxPets; i++) { if (ourAnimals[i, 0] != "ID #: ") { petCount += 1; } }รหัสนี้จะวนรอบผ่าน
ourAnimalsการตรวจสอบอาร์เรย์สําหรับข้อมูลที่กําหนด เมื่อพบสัตว์ที่มีข้อมูลที่กําหนดจะมีการเพิ่มpetCounterหน่วยบนเมนู ไฟล์ของ Visual Studio Code เลือก บันทึก
เปิดแผงเทอร์มินัลรวมใน Visual Studio Code และป้อนคําสั่งเพื่อสร้างโปรแกรมของคุณ
หากต้องการเปิดเทอร์มินัลการรวมจากมุมมอง EXPLORER ให้คลิกขวาที่ Starter จากนั้นเลือก เปิดในเทอร์มินัลแบบรวม คุณยังสามารถใช้เมนู มุมมอง หรือ เทอร์มินัล เพื่อเปิดแผงเทอร์มินัลแบบรวมได้
เมื่อต้องการสร้างโปรแกรมของคุณ ให้
dotnet buildป้อนคําสั่งจากพร้อมท์คําสั่งเทอร์มินัลแก้ไขข้อผิดพลาดในการสร้างใดๆ ที่คุณเห็นรายงานก่อนดําเนินการต่อ
หมายเหตุ
ในตอนนี้ คุณสามารถละเว้นข้อความเตือนเกี่ยวกับ
anotherPetการรับมอบหมาย แต่ไม่เคยใช้ คุณจะเพิ่มโค้ดที่ใช้anotherPetในภายหลังในแบบฝึกหัดนี้หากคุณมีข้อผิดพลาดในการสร้าง โปรดจําไว้ว่าข้อความข้อผิดพลาดและคําเตือนของบิลด์จะบอกให้คุณทราบว่าปัญหาคืออะไรและคุณสามารถค้นหาได้จากที่ใด หากคุณอัปเดตรหัส โปรดบันทึกการเปลี่ยนแปลงก่อนที่จะสร้างใหม่
ปิดแผงเทอร์มินัล
แสดงผลลัพธ์ข้อความเมื่อ petCount น้อยกว่า maxPets
ในงานนี้ คุณตรวจสอบว่าน้อยกว่าpetCountหรือไม่maxPetsและถ้าเป็นคุณจะแสดงข้อความสําหรับผู้ใช้
บนบรรทัดรหัสที่ว่างเปล่าด้านล่างการ
forวนรอบที่คุณสร้างขึ้น เพื่อดูว่าpetCountน้อยกว่าmaxPetsหรือไม่ ให้ใส่โค้ดต่อไปนี้:if (petCount < maxPets) { }ภายในบล็อกรหัสของ
ifคําสั่ง เพื่อแสดงข้อความถึงผู้ใช้ ให้ป้อนรหัสต่อไปนี้:Console.WriteLine($"We currently have {petCount} pets that need homes. We can manage {(maxPets - petCount)} more.");ผู้ใช้แอปพลิเคชันกําลังจะป้อนลักษณะของสัตว์เลี้ยง ข้อความนี้มีบริบทที่สําคัญ
ใช้เวลาสักครู่ในการตรวจสอบสาขารหัสของ
case "2":ใบแจ้งยอดของคุณswitchในตอนนี้ สาขาโค้ดของ
case "2":คุณควรมีลักษณะเหมือนโค้ดต่อไปนี้:case "2": // Add a new animal friend to the ourAnimals array string anotherPet = "y"; int petCount = 0; for (int i = 0; i < maxPets; i++) { if (ourAnimals[i, 0] != "ID #: ") { petCount += 1; } } if (petCount < maxPets) { Console.WriteLine($"We currently have {petCount} pets that need homes. We can manage {(maxPets - petCount)} more."); } Console.WriteLine("Press the Enter key to continue."); readResult = Console.ReadLine(); break;บนเมนู ไฟล์ของ Visual Studio Code เลือก บันทึก
เปิดแผงเทอร์มินัลรวมใน Visual Studio Code และป้อนคําสั่งเพื่อสร้างโปรแกรมของคุณ
แก้ไขข้อผิดพลาดในการสร้างใดๆ ที่คุณเห็นรายงานก่อนดําเนินการต่อ
อีกครั้ง คุณสามารถเพิกเฉยต่อข้อความเตือนเกี่ยวกับ
anotherPetการรับมอบหมาย แต่ไม่เคยใช้ได้ ในงานถัดไป คุณจะเริ่มสร้างwhileรอบ ที่ใช้ในการใส่ข้อมูลสําหรับสัตว์เลี้ยงอย่างน้อยหนึ่งตัว นิพจน์ที่คุณสร้างสําหรับการwhileวนรอบจะใช้anotherPetและข้อความเตือนนี้จะหายไปโปรดจําไว้ว่า ข้อความเตือนคือสิ่งที่คุณควรกังวล แต่ข้อความเหล่านั้นไม่ได้ป้องกันไม่ให้คุณเรียกใช้โปรแกรมของคุณ
ที่พร้อมท์คําสั่งเทอร์มินัล ให้ใส่คําสั่งเพื่อเรียกใช้โปรแกรมของคุณ
ป้อน
dotnet runคําสั่งที่พรอมต์คําสั่งเทอร์มินัลเพื่อเรียกใช้รหัสโปรแกรมของคุณตราบใดที่รหัสของคุณไม่ได้สร้างข้อผิดพลาดรันไทม์ เมนูหลักของแอปควรจะแสดงในแผงเทอร์มินัล
ที่พรอมต์คําสั่งเทอร์มินัล ให้ป้อน 2
ค่านี้สอดคล้องกับสาขารหัสของคุณ
case "2":ตรวจสอบว่าข้อความต่อไปนี้แสดงอยู่ใน Terminal
We currently have 4 pets that need homes. We can manage 4 more. Press the Enter key to continue.หากคุณไม่เห็นข้อความที่คาดไว้ปรากฏขึ้น ให้ตรวจสอบรหัสของคุณเพื่อระบุและแก้ไขปัญหา บันทึกการเปลี่ยนแปลงของคุณ สร้างใหม่ และเรียกใช้แอปอีกครั้ง ตรวจสอบให้แน่ใจว่าได้รับรหัสที่ทํางานได้ตามที่คาดไว้ก่อนที่คุณจะดําเนินการต่อ
ที่พรอมต์คําสั่งเทอร์มินัล กด Enter เพื่อเรียกใช้แอปพลิเคชันของคุณต่อไป
ออกจากแอปพลิเคชัน แล้วปิดแผงเทอร์มินัล
สร้างโครงสร้างลูปที่จะใช้สําหรับการป้อนข้อมูลอาร์เรย์ Animals ใหม่ของเรา
ในงานนี้ คุณสร้างการwhileวนรอบที่ดําเนินการต่อเพื่อทําซ้ําตราanotherPetบใดที่yเท่ากับ และpetCountน้อยกว่าmaxPets
ในตัวแก้ไขโค้ด ให้สร้างบรรทัดโค้ดว่างด้านล่างบล็อกโค้ดของคุณ
if (petCount < maxPets)หากต้องการเริ่มกระบวนการสร้างรอบใหม่
whileของคุณ ให้ป้อนรหัสต่อไปนี้:while (anotherPet == "y" && petCount < maxPets) { }บนเมนู ไฟล์ของ Visual Studio Code เลือก บันทึก
เปิดแผงเทอร์มินัลรวมใน Visual Studio Code และป้อนคําสั่งเพื่อสร้างโปรแกรมของคุณ
โปรดสังเกตว่าคุณไม่ได้รับข้อความเตือนเกี่ยวกับ
anotherPetไม่ได้ใช้งานอีกต่อไปถ้ามีการรายงานข้อผิดพลาดหรือคําเตือนของบิลด์ ให้แก้ไขปัญหาก่อนดําเนินการต่อ
ตรวจสอบสภาพการออกสําหรับรอบสัตว์เลี้ยงใหม่
ในงานนี้ คุณอัปเดตบล็อก while (anotherPet == "y" && petCount < maxPets) รหัส การเพิ่มโค้ด petCount ใหม่ และจากนั้นตรวจสอบว่า petCount น้อยกว่า maxPetsหรือไม่ ถ้า petCount น้อยกว่า maxPetsคุณถามผู้ใช้ว่าพวกเขาต้องการใส่ข้อมูลสําหรับสัตว์เลี้ยงตัวอื่นหรือไม่ และตรวจสอบให้แน่ใจว่าคําตอบเป็น y หรือn หลังจากบล็อคwhile (anotherPet == "y" && petCount < maxPets)รหัส คุณต้องตรวจสอบค่าของpetCount หาก petCount เท่ากับ maxPetsคุณจะแจ้งให้ผู้ใช้ทราบว่าไม่สามารถเพิ่มสัตว์เลี้ยงได้อีก
หมายเหตุ
รหัสที่ใช้ในการป้อนข้อมูลสัตว์เลี้ยงได้รับการพัฒนาในแบบฝึกหัดถัดไป ใน petCount ตอนนี้ จะมีการเพิ่มหน่วยเหมือนกับว่ามีการป้อนข้อมูลและบันทึกไปยัง ourAnimals อาร์เรย์ ซึ่งช่วยให้คุณสามารถพัฒนาตรรกะโค้ดที่เชื่อมโยงกับการ while วนรอบให้เสร็จสิ้นได้
สร้างบรรทัดรหัสที่ว่างเปล่าภายในบล็อกรหัสของ
while (anotherPet == "y" && petCount < maxPets)ลูปที่คุณสร้างขึ้นในงานก่อนหน้านี้เมื่อต้องการเพิ่ม
petCountให้ใส่โค้ดต่อไปนี้:// increment petCount (the array is zero-based, so we increment the counter after adding to the array) petCount = petCount + 1;หากต้องการตรวจสอบว่า
petCountน้อยกว่าmaxPetsหรือไม่ ให้ป้อนโค้ดต่อไปนี้:// check maxPet limit if (petCount < maxPets) { }ภายในบล็อกรหัสของ
ifคําสั่งที่คุณสร้างขึ้น เพื่อถามผู้ใช้ว่าพวกเขาต้องการเพิ่มสัตว์เลี้ยงอีกตัวหรือไม่ ให้ป้อนรหัสต่อไปนี้:// another pet? Console.WriteLine("Do you want to enter info for another pet (y/n)");ด้านล่าง
WriteLine()ข้อความที่คุณป้อน เพื่ออ่านการตอบกลับของผู้ใช้ และตรวจสอบว่าผู้ใช้ป้อน "y" หรือ "n" ให้ป้อนรหัสต่อไปนี้:do { readResult = Console.ReadLine(); if (readResult != null) { anotherPet = readResult.ToLower(); } } while (anotherPet != "y" && anotherPet != "n");ค้นหาคําสั่ง
breakที่แยกออกจากcase "2";case "3";ในคําสั่งของคุณswitchConsole.WriteLine()โปรดสังเกตคําสั่ง และConsole.ReadLine()ที่ส่วนท้ายของโค้ดของเราcase "2";รหัสนี้แสดงข้อความให้ผู้ใช้แล้วหยุดแอปพลิเคชันชั่วคราว
หากต้องการล้อมรอบ
Console.WriteLine()คําสั่ง และConsole.ReadLine()ภายในifคําสั่ง ให้อัปเดตโค้ดของคุณดังนี้:if (petCount >= maxPets) { Console.WriteLine("Press the Enter key to continue."); readResult = Console.ReadLine(); } break; case "3":ค่าของ
petCountจะเพิ่มภายในรอบwhileหากpetCountเท่ากับmaxPetsจะไม่สามารถเพิ่มสัตว์เลี้ยงไปยังourAnimalsอาร์เรย์ได้อีก คุณควรแจ้งให้ผู้ใช้ทราบเมื่อเหตุการณ์นี้เกิดขึ้นหากต้องการแจ้งให้ผู้ใช้ทราบว่า Contoso Pets ถึงความจุของพวกเขาแล้ว ให้อัปเดตโค้ดของคุณดังต่อไปนี้:
if (petCount >= maxPets) { Console.WriteLine("We have reached our limit on the number of pets that we can manage."); Console.WriteLine("Press the Enter key to continue."); readResult = Console.ReadLine(); } break; case "3":ใช้เวลาสักครู่เพื่อตรวจสอบโค้ดในการวนรอบของคุณและ
whileข้อความผู้ใช้ที่คุณสร้างขึ้นการ
while (anotherPet == "y" && petCount < maxPets)วนรอบและโค้ดที่แสดงข้อความของผู้ใช้ควรมีลักษณะเหมือนกับโค้ดต่อไปนี้:while (anotherPet == "y" && petCount < maxPets) { // increment petCount (the array is zero-based, so we increment the counter after adding to the array) petCount = petCount + 1; // check maxPet limit if (petCount < maxPets) { // another pet? Console.WriteLine("Do you want to enter info for another pet (y/n)"); do { readResult = Console.ReadLine(); if (readResult != null) { anotherPet = readResult.ToLower(); } } while (anotherPet != "y" && anotherPet != "n"); } } if (petCount >= maxPets) { Console.WriteLine("We have reached our limit on the number of pets that we can manage."); Console.WriteLine("Press the Enter key to continue."); readResult = Console.ReadLine(); }บนเมนู ไฟล์ของ Visual Studio Code เลือก บันทึก
เปิดแผงเทอร์มินัลรวมใน Visual Studio Code และป้อนคําสั่งเพื่อสร้างโปรแกรมของคุณ
แก้ไขข้อผิดพลาดหรือคําเตือนของรุ่นที่คุณเห็นรายงานก่อนดําเนินการต่อ
ตรวจสอบงานของคุณ
ในงานนี้ คุณเรียกใช้แอปพลิเคชันของเราจากเทอร์มินัลรวม และตรวจสอบว่าตรรกะการวนรอบและโยงหัวข้อที่คุณสร้างขึ้นทํางานตามที่คาดไว้
หากจําเป็น ให้เปิดแผงเทอร์มินัลแบบรวมของ Visual Studio Code
ที่พร้อมท์คําสั่งเทอร์มินัล ให้ใส่ dotnet ทํางาน
ที่พรอมต์คําสั่งเทอร์มินัล ให้ป้อน 2
ตรวจสอบว่าคุณเห็นข้อความต่อไปนี้:
We currently have 4 pets that need homes. We can manage 4 more. Do you want to enter info for another pet (y/n)ที่พรอมต์คําสั่งเทอร์มินัล ให้ป้อน n
ตรวจสอบว่าโค้ดของคุณออกจากรอบสําหรับการป้อนสัตว์เลี้ยงใหม่เมื่อคุณป้อน "n"
ถ้าตรรกะโค้ดของคุณทํางานตามที่คาดไว้ คุณควรเห็นเมนูหลักที่แสดงในเทอร์มินัล
หากรหัสของคุณไม่ออกจากการวนรอบตามที่คาดไว้ ให้กด Ctrl + C ในเทอร์มินัลเพื่อบังคับให้การดําเนินการหยุด คุณจําเป็นต้องดําเนินการตามรหัสของคุณด้วยตนเองและติดตามค่าของตัวแปรเกณฑ์การออกจากระบบ อัปเดตโค้ดของคุณหากจําเป็นเพื่อให้แน่ใจว่าคุณออกจากการ
whileวนรอบเมื่อผู้ใช้ป้อน "n" บันทึกการเปลี่ยนแปลงของคุณ สร้างโปรแกรมของคุณใหม่ และเรียกใช้การทดสอบการตรวจสอบเพื่อกลับมาที่จุดนี้ที่พรอมต์คําสั่งเทอร์มินัล ให้ป้อน 2
อีกครั้ง คุณจะเห็นข้อความต่อไปนี้แสดง:
We currently have 4 pets that need homes. We can manage 4 more. Do you want to enter info for another pet (y/n)ที่พรอมต์คําสั่งเทอร์มินัล ให้ป้อน y
ใช้เวลาสักครู่เพื่อพิจารณาวิธีใช้
petCountในโค้ดของคุณคุณจําเป็นต้องทําความเข้าใจตรรกะโค้ดของคุณก่อนที่คุณจะสามารถตรวจสอบความถูกต้องของโค้ดของคุณได้
ในกรณีนี้ ตรรกะโค้ดของคุณจะอาศัยความสัมพันธ์ระหว่าง
petCountและmaxPetsคุณทราบว่าmaxPetsได้รับการกําหนดค่า ของ8แต่ว่าเกี่ยวกับpetCountอะไร รายการต่อไปนี้ช่วยในการประเมินตรรกะที่คุณได้นําไปใช้:คุณทราบว่า
petCountคือ4เมื่อคุณเข้าสู่การเกิดซ้ําครั้งแรกของwhileรอบคุณทราบว่า
petCountมีการเพิ่มขึ้นทุกครั้งที่มีการwhileวนรอบคุณทราบว่าค่าที่
petCountกําหนดให้กับ และวิธีการpetCountที่เพิ่มขึ้นส่งผลต่อวิธีการจัดเก็บข้อมูลในourAnimalsอาร์เรย์ รายการต่อไปนี้อธิบายความสัมพันธ์ระหว่างpetCountและข้อมูลที่ถูกเก็บไว้ในourAnimals:- แอปพลิเคชันเพิ่มสัตว์เลี้ยงสี่ตัวใน
ourAnimalsอาร์เรย์ เมื่อสร้างข้อมูลตัวอย่าง - แอพลิเคชันจัดเก็บข้อมูลใหม่ไปยัง
ourAnimalsอาร์เรย์ เมื่อค่าของpetCountคือ4นี่ไม่ใช่ข้อบกพร่อง รหัสเหมาะสมเมื่อคุณระลึกว่าองค์ประกอบอาร์เรย์นั้นยึดตามศูนย์ ตัวอย่างเช่นourAnimals[0,0]มี ID สัตว์เลี้ยงสําหรับสัตว์1และมีourAnimals[3,0]ID สัตว์เลี้ยงสําหรับสัตว์4ดังนั้น เมื่อคุณpetCount4กําลังจัดเก็บข้อมูลสําหรับสัตว์เลี้ยงตัวที่ห้า - แอปพลิเคชันจะจัดเก็บข้อมูลสัตว์เลี้ยงไปยังอาร์เรย์ ก่อนที่จะเพิ่ม
petCount - การเพิ่มแอปพลิเคชัน
petCountก่อนที่จะแจ้งให้ผู้ใช้ทราบเกี่ยวกับการเพิ่มสัตว์เลี้ยงตัวอื่น - เมื่อแอปพลิเคชันแสดงพร้อมท์ คุณต้องการใส่ข้อมูลสําหรับสัตว์เลี้ยงตัวอื่น (y/n) เป็นครั้งแรก
petCountถูกตั้งค่าเป็น5
- แอปพลิเคชันเพิ่มสัตว์เลี้ยงสี่ตัวใน
ถ้าผู้ใช้ป้อน y ที่แรก คุณต้องการใส่ข้อมูลสําหรับพร้อมท์สัตว์เลี้ยง (y/n) อื่น คุณจะทราบว่า:
- รอบ
while (anotherPet == "y" && petCount < maxPets)จะทําซ้ํา คุณทราบว่ารอบจะทําซ้ําเนื่องจากanotherPet == "y"และpetCount < maxPets - ค่าที่กําหนดให้
petCountจะถูกเพิ่ม (เมื่อมีการทําซ้ําการwhileวนรอบ) - ค่าที่กําหนดให้
petCountจะเป็น6(หลังจากที่ผู้ใช้ป้อน y เป็นครั้งแรก)
- รอบ
โปรดคํานึงถึงการวิเคราะห์ตรรกะโค้ดนี้เมื่อคุณทดสอบแอปพลิเคชันต่อไป
โปรดสังเกตว่าแผงเทอร์มินัลจะอัปเดตด้วยข้อความ "สัตว์เลี้ยงตัวอื่น?" เดียวกัน แต่โค้ดของคุณไม่แสดงการอัปเดต
petCountแผงเทอร์มินัลควรแสดงเอาต์พุตต่อไปนี้:
We currently have 4 pets that need homes. We can manage 4 more. Do you want to enter info for another pet (y/n) y Do you want to enter info for another pet (y/n)ที่พรอมต์คําสั่งเทอร์มินัล ให้ป้อน y
เมื่อคุณป้อน
yครั้งที่petCountสอง จะถูกเพิ่มเป็น7ดังนั้นpetCountก็ยังน้อยกว่าmaxPetsที่พรอมต์คําสั่งเทอร์มินัล ให้ป้อน y
เมื่อคุณป้อน
yครั้งที่petCountสาม จะมีการเพิ่มเป็น8ดังนั้นpetCountตอนนี้เท่ากับmaxPetsตรวจสอบว่าโค้ดของคุณออกจากการ
whileวนรอบเมื่อคุณป้อน y ครั้งที่สามแผงเทอร์มินัลควรแสดงเอาต์พุตต่อไปนี้:
We currently have 4 pets that need homes. We can manage 4 more. Do you want to enter info for another pet (y/n) y Do you want to enter info for another pet (y/n) y Do you want to enter info for another pet (y/n) y We have reached our limit on the number of pets that we can manage. Press the Enter key to continue.หากโค้ดของคุณไม่ได้ออกจากการวนรอบเมื่อคาดหมาย ให้ดําเนินการตามรหัสของคุณด้วยตนเองและติดตามค่าของตัวแปรเกณฑ์การออกจากระบบ อัปเดตโค้ดของคุณเพื่อให้แน่ใจว่าคุณออกจากรอบเมื่อ
petCountถึงค่าเท่ากับmaxPetsให้คําตอบ "y" จนกว่าคุณจะทราบว่าpetCountเท่ากับmaxPetsซึ่งมีค่าเริ่มต้นเป็น8ที่พรอมต์คําสั่งเทอร์มินัล กด Enter เพื่อเรียกใช้แอปพลิเคชันของคุณต่อไป
ออกจากแอปพลิเคชัน แล้วปิดแผงเทอร์มินัล