เคยเจอปัญหานี้ไหม? ต้องเขียนโค้ดให้โปรแกรมตัดเกรดนักเรียน แต่ไม่รู้จะเริ่มยังไงดี วันนี้เราจะมาปลดล็อกความเทพด้าน PHP ด้วยตัวอย่างโค้ดตัดเกรดสุดง่าย ที่มือใหม่ก็ทำตามได้!
🎯 ทำความเข้าใจระบบการตัดเกรด
คะแนน (%) | เกรด |
---|---|
80 - 100 | A |
70 - 79 | B |
60 - 69 | C |
50 - 59 | D |
0 - 49 | F |
หลักการก็คือ เอาคะแนนมาพิจารณาว่าอยู่ในช่วงไหน แล้วให้เกรดตามนั้น
🛠️ ตัวอย่างโค้ด PHP ตัดเกรดแบบพื้นฐาน
มาลองเขียนโค้ดง่าย ๆ กันก่อน เราจะใช้เงื่อนไข if-else เพื่อเช็กว่าคะแนนอยู่ในช่วงไหน
<?php
function getGrade($score) {
if ($score >= 80) {
return "A";
} elseif ($score >= 70) {
return "B";
} elseif ($score >= 60) {
return "C";
} elseif ($score >= 50) {
return "D";
} else {
return "F";
}
}
// ทดสอบโค้ด
$scores = [95, 72, 68, 40, 89];
foreach ($scores as $score) {
echo "คะแนน: $score => เกรด: " . getGrade($score) . "<br>";
}
?>
💡 อธิบายโค้ด
- เราสร้างฟังก์ชัน getGrade($score) เพื่อรับคะแนนและคืนค่าเป็นเกรด
- ใช้ if-elseif-else เพื่อเช็กช่วงคะแนน
- ทดลองใส่คะแนนในอาร์เรย์ แล้ววนลูป foreach เพื่อตัดเกรดทีละตัว
ผลลัพธ์ที่ได้จะเป็นแบบนี้:
คะแนน: 95 => เกรด: A
คะแนน: 72 => เกรด: B
คะแนน: 68 => เกรด: C
คะแนน: 40 => เกรด: F
คะแนน: 89 => เกรด: A
🔥 ตัดเกรดหลายคน พร้อมแสดงชื่อ
ถ้าต้องการให้ระบบรองรับนักเรียนหลายคน แสดงชื่อพร้อมเกรด เราสามารถใช้ Associative Array แบบนี้
<?php
$students = [
"Alice" => 85,
"Bob" => 74,
"Charlie" => 90,
"David" => 45,
"Eva" => 60
];
foreach ($students as $name => $score) {
echo "นักเรียน: $name - คะแนน: $score => เกรด: " . getGrade($score) . "<br>";
}
?>
🔹 ความแตกต่างจากโค้ดแรก
- ใช้ Associative Array ($students) ที่เก็บ ชื่อ => คะแนน
- วนลูปด้วย foreach โดย key คือชื่อ และ value คือคะแนน
⚡ ตัดเกรดแบบพรีเมียม! ใช้ switch case
อีกวิธีที่อ่านง่ายขึ้นคือใช้ switch case โดยเราจะปัดคะแนนเป็นหลักสิบก่อน แล้วค่อยตรวจสอบ
<?php
function getGradeSwitch($score) {
switch (true) {
case ($score >= 80): return "A";
case ($score >= 70): return "B";
case ($score >= 60): return "C";
case ($score >= 50): return "D";
default: return "F";
}
}
// ทดสอบโค้ด
$scores = [95, 72, 68, 40, 89];
foreach ($scores as $score) {
echo "คะแนน: $score => เกรด: " . getGradeSwitch($score) . "<br>";
}
?>
💡 ข้อดีของ switch case
✅ อ่านง่ายกว่า if-else
✅ โค้ดดูสั้นและสะอาด
🎭 ทำให้โค้ดดูโปรมากขึ้น ด้วย Class & OOP
ถ้าอยากทำให้โค้ดดูโปรขึ้น ลองใช้ Class & Object
<?php
class GradingSystem {
public function getGrade($score) {
switch (true) {
case ($score >= 80): return "A";
case ($score >= 70): return "B";
case ($score >= 60): return "C";
case ($score >= 50): return "D";
default: return "F";
}
}
}
// สร้าง Object
$grader = new GradingSystem();
$students = [
"Alice" => 85,
"Bob" => 74,
"Charlie" => 90,
"David" => 45,
"Eva" => 60
];
foreach ($students as $name => $score) {
echo "นักเรียน: $name - คะแนน: $score => เกรด: " . $grader->getGrade($score) . "<br>";
}
?>
✨ ทำไมต้องใช้ OOP?
- ทำให้โค้ด Reusable (ใช้ซ้ำได้ง่าย)
- แยกการทำงานเป็นโมดูล ช่วยให้ ดูแลง่ายขึ้น
🎯 บทสรุป
✅ PHP สามารถตัดเกรดได้ง่าย ๆ ด้วย if-else, switch-case หรือ OOP
✅ ใช้ Associative Array เพื่อจัดการข้อมูลนักเรียนหลายคน
✅ ถ้าอยากให้โค้ดดูโปร ลองใช้ Class & Object
👉 ลองนำไปใช้ดู แล้วจะรู้ว่า การตัดเกรดด้วย PHP ง่ายกว่าที่คิด! 🎉
ไม่มีความคิดเห็น:
แสดงความคิดเห็น