วันอังคารที่ 1 เมษายน พ.ศ. 2568

PHP ตัดเกรดยังไงให้เทพ! ตัวอย่างโค้ดเข้าใจง่าย พร้อมอธิบายแบบกันเอง

เคยเจอปัญหานี้ไหม? ต้องเขียนโค้ดให้โปรแกรมตัดเกรดนักเรียน แต่ไม่รู้จะเริ่มยังไงดี วันนี้เราจะมาปลดล็อกความเทพด้าน 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 ง่ายกว่าที่คิด! 🎉

ไม่มีความคิดเห็น:

แสดงความคิดเห็น