⏱️ ~10 นาที

การตัดสินใจด้วย if/else

ทำให้โปรแกรมเลือกทางเดินตามเงื่อนไข

ทำไมต้องมีเงื่อนไข?

โปรแกรมที่ "ฉลาด" ต้อง ตัดสินใจ ได้:

  • ถ้าฝนตก → เอาร่ม
  • ถ้าอายุ < 18 → ห้ามเข้า
  • ถะ password ถูก → เข้าสู่ระบบ

นี่คือหน้าที่ของ if / else

คำสั่ง if พื้นฐาน

let age = 20;

if (age >= 18) {
  console.log("เข้างานได้");
}
  • if + เงื่อนไขใน ( )
  • ถ้าเงื่อนไขเป็น จริง → โค้ดใน { } ทำงาน
  • ถ้า เท็จ → ข้ามไป

เพิ่ม else (กรณีไม่ใช่)

let age = 15;

if (age >= 18) {
  console.log("เข้างานได้");
} else {
  console.log("กลับบ้านไป");
}

ผลลัพธ์: กลับบ้านไป (เพราะ 15 < 18)

เงื่อนไขหลายกรณี: else if

let score = 75;

if (score >= 80) {
  console.log("เกรด 4");
} else if (score >= 70) {
  console.log("เกรด 3");
} else if (score >= 60) {
  console.log("เกรด 2");
} else {
  console.log("ไม่ผ่าน");
}

⚠️ เงื่อนไขจะถูกตรวจ จากบนลงล่าง พอเจอข้อที่เป็นจริง จะทำและ หยุด ดังนั้นวางลำดับให้ถูก (จากเข้มไปหละหรือมากไปน้อย)

การซ้อนเงื่อนไข (Nested if)

let hasTicket = true;
let age = 20;

if (hasTicket) {
  if (age >= 18) {
    console.log("เข้าชมได้");
  } else {
    console.log("ต้องมีผู้ปกครอง");
  }
} else {
  console.log("ซื้อตั๋วก่อน");
}

เปรียบเทียบหลายค่าด้วย && และ ||

let age = 25;
let hasID = true;

// ต้องผ่านทั้งคู่
if (age >= 18 && hasID) {
  console.log("ผ่าน");
}

// ผ่านอย่างใดอย่างหนึ่ง
let isVip = false;
if (isVip || hasID) {
  console.log("เข้าได้");
}

Ternary Operator (if แบบย่อ)

เมื่อเงื่อนไขง่าย ๆ ใช้รูปแบบ:

เงื่อนไข ? ค่าถ้าจริง : ค่าถ้าเท็จ
let age = 20;
let status = age >= 18 ? "ผู้ใหญ่" : "เด็ก";
console.log(status);   // ผู้ใหญ่

💡 เหมาะกับการกำหนดค่าแบบสั้น ๆ — ถ้าซับซ้อนใช้ if/else ปกติอ่านง่ายกว่า

เปรียบเทียบค่าเท่ากันหลายตัว: switch

let day = "จันทร์";

switch (day) {
  case "จันทร์":
    console.log("เริ่มต้นสัปดาห์");
    break;
  case "ศุกร์":
    console.log("สู้ต่อไป!");
    break;
  default:
    console.log("วันธรรมดา");
}
  • break สำคัญ — ไม่งั้นจะทำต่อใน case ถัดไป
  • default = กรณีไม่ตรงอันไหนเลย

ค่าที่ถือเป็น "เท็จ" (Falsy)

ในเงื่อนไข JS ถือค่าเหล่านี้เป็น เท็จ:

  • false
  • 0, -0, 0n
  • "" (ข้อความว่าง)
  • null, undefined
  • NaN

ค่าอื่น ๆ ทั้งหมดเป็น จริง (truthy)

let name = "";
if (name) {
  console.log("มีชื่อ");
} else {
  console.log("ไม่มีชื่อ");   // ทำบรรทัดนี้ เพราะ "" เป็น falsy
}

ลองทำจริง: เครื่องคิดเกรด

function checkGrade(score) {
  if (score >= 80) return "A";
  if (score >= 70) return "B";
  if (score >= 60) return "C";
  if (score >= 50) return "D";
  return "F";
}

console.log(checkGrade(85));   // A
console.log(checkGrade(55));   // D

สรุป

รูปแบบใช้เมื่อ
ifมีเงื่อนไขเดียว
if / elseสองทาง
else ifหลายทาง
?: (ternary)เลือกค่าแบบสั้น
switchเทียบค่าเดียวหลายกรณี

บทหน้า: ทำให้โปรแกรม ทำซ้ำ ด้วยลูป 🔄

อ่านจบแล้ว? ทำเครื่องหมายว่าเสร็จเพื่อบันทึกความคืบหน้า

🧠

แบบทดสอบ

ตอบให้ครบแล้วกด “ตรวจคำตอบ” เพื่อเช็คความเข้าใจ

  1. 1. คำสั่งใดใช้ตรวจสอบเงื่อนไขใน JavaScript?

  2. 2. ถ้าต้องการเลือกเส้นทางหลายทาง ควรใช้อะไร?

  3. 3. โครงสร้าง condition ? a : b คืออะไร?

กำลังโหลด…