การ Return ค่าก่อนกำหนด
บางครั้งไม่จำเป็นต้องรันโค้ดทุกบรรทัดในฟังก์ชันเพื่อให้ได้คำตอบ ในกรณีนั้น สามารถออกจากฟังก์ชันได้ก่อนกำหนดโดยใช้ return()
หากต้องการตรวจสอบว่า x หารด้วย n ลงตัวหรือไม่ ให้ใช้ is_divisible_by(x, n) จากไลบรารี assertive
หรืออีกทางหนึ่ง ใช้ตัวดำเนินการโมดูโล %% โดย x %% n จะให้ค่าเศษจากการหาร x ด้วย n ดังนั้น x %% n == 0 จะบอกได้ว่า x หารด้วย n ลงตัวหรือเปล่า ลองรัน 1:10 %% 3 == 0 ใน console ดู
สำหรับแบบฝึกหัดนี้ ต้องรู้ว่าปีอธิกสุรทินคือทุกๆ ปีที่ 400 (เช่น ปี 2000) หรือทุกๆ ปีที่ 4 ที่ไม่ใช่ปีศตวรรษ (เช่น 1904 แต่ไม่ใช่ 1900 หรือ 1905)
โหลด assertive ไว้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Introduction to Writing Functions in R
คำแนะนำการฝึกหัด
- เติมโค้ดในฟังก์ชัน
is_leap_year()ให้สมบูรณ์ โดยตรวจสอบเงื่อนไขตามลำดับว่าyearหารด้วย 400, 100 และ 4 ลงตัวหรือไม่ แล้ว return ค่าออกจากฟังก์ชันในแต่ละกรณี
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
is_leap_year <- function(year) {
# If year is div. by 400 return TRUE
if(___) {
return(___)
}
# If year is div. by 100 return FALSE
if(___) {
___
}
# If year is div. by 4 return TRUE
___
# Otherwise return FALSE
___
}