กรณีขอบเขต: หลักของตัวเลข
แบบฝึกหัดการเขียนโปรแกรมที่พบบ่อยแบบหนึ่งคือการดึงหลักของจำนวนเต็มออกมาแล้วจัดเรียงใหม่ วิธีที่เร็วที่สุดในการดึงหลักสุดท้ายของจำนวนเต็มคือการใช้ modulo 10 (% 10) ซึ่งจะคืนค่าเศษเหลือจากการหารจำนวนเต็มด้วย 10
ด้านล่างนี้คือเมธอดที่คืนค่าหลักสุดท้ายของจำนวนเต็ม แต่เมธอดนี้ทำงานผิดพลาดกับอินพุตครึ่งหนึ่งของทั้งหมด นั่นคือจำนวนเต็มลบ เนื่องจาก modulo 10 จะคงเครื่องหมายของจำนวนเต็มไว้
ป้อนค่าจำนวนเต็มที่ทำให้เมธอด lastDigit() คืนค่าที่ไม่ถูกต้อง
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทดสอบใน Java เบื้องต้น
คำแนะนำการฝึกหัด
- เขียนจำนวนเต็ม หลายหลัก ที่เมธอด
lastDigit()ระบุหลักสุดท้ายได้ไม่ถูกต้อง
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
public class LastDigit {
public static void main(String[] args) {
// Write down an integer that causes an incorrect return value of lastDigit()
int n = ____;
System.out.println("The last digit of " + n + " equals " + lastDigit(n) + ".");
}
public static int lastDigit(int a) {
return a % 10;
}
}