แบบฝึกหัด - ส่งกลับตัวเลขจากวิธีการ
- 10 นาที
คุณอาจต้องส่งคืนตัวเลขจากเมธอดและใช้ผลลัพธ์สําหรับงานอื่นๆ ในแบบฝึกหัดสั้น ๆ นี้ คุณจะได้ฝึกการส่งคืนและ int ชนิด double ข้อมูล และการบันทึกค่าที่ส่งคืน
สร้างวิธีการที่ส่งกลับจํานวนเต็ม
สมมติว่าคุณกําลังไปเยือนเวียดนามและต้องการสร้างโปรแกรมสั้น ๆ ที่แปลงสกุลเงิน คุณสามารถสันนิษฐานได้ว่าอัตราแลกเปลี่ยนปัจจุบันคือ1 USD = 23500 VND ในงานนี้ คุณจะเขียนวิธีการแปลง USD เป็น VND
ใน Visual Studio Code Editor ให้ลบโค้ดที่มีอยู่ออกจากแบบฝึกหัดก่อนหน้า
ป้อนรหัสต่อไปนี้ลงในตัวแก้ไขรหัส Visual Studio:
double usd = 23.73; int vnd = UsdToVnd(usd); Console.WriteLine($"${usd} USD = ${vnd} VND"); int UsdToVnd(double usd) { }ในขั้นตอนนี้ คุณจะเริ่มต้นตัวแปรสองตัวเพื่อจัดเก็บค่า USD และ VND สังเกตว่ามี
vndการเตรียมพร้อมเป็นผลลัพธ์ของเมธอดUsdToVndเมธอดนี้ส่งคืนค่าจํานวนเต็มเนื่องจากโดยทั่วไป VND จะแสดงเป็นจํานวนเต็ม เพื่อแสดงผลลัพธ์ของการแปลงสกุลเงิน จะใช้Console.WriteLineถัดไป คุณจะเพิ่มโค้ดเพื่อทําการแปลง อัปเดตวิธีการ
UsdToVndด้วยโค้ดต่อไปนี้:int UsdToVnd(double usd) { int rate = 23500; return (int) (rate * usd); }หากคุณละเว้นการแคสต์จากผลลัพธ์ที่ส่งคืน คุณจะเห็นข้อผิดพลาดต่อไปนี้:
Cannot implicitly convert type 'double' to 'int'.สิ่งนี้เกิดขึ้นเนื่องจากคอมไพเลอร์พยายามที่จะส่งค่าที่ส่งคืนให้ตรงกับชนิดข้อมูลที่ระบุในลายเซ็นเมธอด อย่างไรก็ตาม การแคสต์โดยนัยจะใช้ได้ก็ต่อเมื่อไม่มีข้อมูลสูญหายอันเป็นผลมาจากการแปลง ค่าที่ส่งกลับต้องตรงกับชนิดข้อมูลที่ระบุในลายเซ็นเมธอดเสมอดังนั้นในกรณีนี้คุณต้องส่งผลลัพธ์
หากจําเป็น ให้เปิดแผงเทอร์มินัลแบบรวมของ Visual Studio Code
ที่พร้อมท์คําสั่งเทอร์มินัล ให้ป้อน dotnet run และเปรียบเทียบผลลัพธ์ของคุณกับสิ่งต่อไปนี้:
$23.73 USD = $557655 VNDหากรหัสของคุณแสดงผลลัพธ์ที่ไม่คาดคิด คุณจะต้องตรวจสอบรหัสของคุณเพื่อค้นหาข้อผิดพลาดและทําการอัปเดต เรียกใช้รหัสอีกครั้งเพื่อดูว่าคุณได้แก้ไขปัญหาหรือไม่ อัปเดตและเรียกใช้โค้ดของคุณต่อจนกว่ารหัสของคุณจะสร้างผลลัพธ์ที่คาดหวัง
สร้างเมธอดที่ส่งคืน double
ถัดไป คุณจะสร้างวิธีการแปลง VND กลับเป็น USD
สร้างบรรทัดโค้ดว่างใหม่ที่ส่วนท้ายของ
UsdToVndเมธอดป้อนโค้ดต่อไปนี้:
double VndToUsd(int vnd) { }อัปเดตวิธีการ
VndToUsdด้วยโค้ดต่อไปนี้:double VndToUsd(int vnd) { double rate = 23500; return vnd / rate; }ในกรณีนี้ คุณต้อง
rateเป็น หรือdoubleคอมไพเลอร์จะใช้การหารจํานวนเต็มและส่งคืนค่าที่ถูกตัดintทอน USD ต้องแสดงด้วยเลขทศนิยมหากคุณตั้งค่า
rateเป็น แทนintdoubleคุณจะสังเกตเห็นว่าคอมไพเลอร์ไม่ได้แสดงข้อผิดพลาดใดๆ สิ่งนี้เกิดขึ้นเนื่องจากค่าของvnd / rateถูกโยนโดยปริยายไปยังชนิดข้อมูลที่ระบุdoubleในลายเซ็นเมธอด เมื่อสร้างเมธอดที่ส่งกลับค่าตัวเลข สิ่งสําคัญคือต้องพิจารณาชนิดข้อมูลในการดําเนินการที่เมธอดของคุณดําเนินการค้นหาการโทรและ
Console.WriteLineผนวกบรรทัดรหัสว่างใหม่ จากนั้นป้อนรหัสต่อไปนี้เพื่อเรียกเมธอดใหม่ของเราและพิมพ์ผลลัพธ์:Console.WriteLine($"${vnd} VND = ${VndToUsd(vnd)} USD");
ตรวจสอบงานของคุณ
ในงานนี้ คุณจะเรียกใช้แอปพลิเคชันของเราจากเทอร์มินัลในตัวและตรวจสอบว่าโค้ดของคุณทํางานอย่างถูกต้อง เริ่มต้นการเริ่มต้นใช้งาน
เปรียบเทียบโค้ดของคุณกับโค้ดต่อไปนี้เพื่อให้แน่ใจว่าถูกต้อง:
double usd = 23.73; int vnd = UsdToVnd(usd); Console.WriteLine($"${usd} USD = ${vnd} VND"); Console.WriteLine($"${vnd} VND = ${VndToUsd(vnd)} USD"); int UsdToVnd(double usd) { int rate = 23500; return (int) (rate * usd); } double VndToUsd(int vnd) { double rate = 23500; return vnd / rate; }บันทึกงานของคุณโดยใช้ Ctrl + S หรือใช้เมนูไฟล์ของ Visual Studio Code
หากจําเป็น ให้เปิดแผงเทอร์มินัลแบบรวมของ Visual Studio Code
ในแผง EXPLORER ในการเปิดเทอร์มินัลที่ตําแหน่งโฟลเดอร์ TestProject ของคุณ ให้คลิกขวาที่ TestProjectจากนั้นเลือก เปิดในเทอร์มินัลแบบรวม
ที่พร้อมท์คําสั่งเทอร์มินัล ให้ใส่ dotnet ทํางาน
ตรวจสอบว่าโค้ดของคุณสร้างเอาต์พุตต่อไปนี้:
$23.73 USD = $557655 VND $557655 VND = $23.73 USDหากรหัสของคุณแสดงผลลัพธ์ที่แตกต่างกัน คุณจะต้องตรวจสอบรหัสของคุณเพื่อค้นหาข้อผิดพลาดและทําการอัปเดต เรียกใช้รหัสอีกครั้งเพื่อดูว่าคุณได้แก้ไขปัญหาหรือไม่ อัปเดตและเรียกใช้โค้ดของคุณต่อจนกว่ารหัสของคุณจะสร้างผลลัพธ์ที่คาดหวัง
ตรวจสอบความรู้ของคุณ
คำติชม
หน้านี้มีประโยชน์หรือไม่
ไม่
ต้องการความช่วยเหลือในหัวข้อนี้หรือไม่
ต้องการลองใช้ Ask Learn เพื่อทําให้ชัดเจนหรือแนะนําคุณผ่านหัวข้อนี้หรือไม่