คอร์ส IT พื้นฐาน JavaScript 041_การแตกแขนงแบบมีเงื่อนไข if, else, switch
คำสั่งเงื่อนไขใน JavaScript ประกอบด้วย if, else if, else และ switch เป็นหลัก
คำสั่ง if
คำสั่ง if ใช้สำหรับตัดสินใจว่าจะรันโค้ดส่วนใดส่วนหนึ่งหรือไม่ตามเงื่อนไข เมื่อนิพจน์เงื่อนไขภายในวงเล็บของคำสั่ง if(...) เป็น true จะรันคำสั่ง หนึ่งบรรทัด หลัง if
หากต้องการควบคุมหลายบรรทัดของโค้ด สามารถใช้ {} เพื่อครอบคำสั่ง แนะนำให้ใช้วงเล็บปีกกา {} เพื่อห่อหุ้มบลอกโค้ดทุกครั้งที่ใช้คำสั่ง if แม้ว่าจะมีเพียงหนึ่งคำสั่ง เพื่อเพิ่มความสามารถในการอ่านโค้ด
หากนิพจน์เงื่อนไขเป็น false จะไม่ทำงาน
หากนิพจน์เงื่อนไขหลัง if ไม่ใช่ค่าบูลีน จะถูกแปลงเป็นค่าบูลีนก่อนแล้วจึงคำนวณ ตัวเลข 0, สตริงว่าง "", null, undefined และ NaN จะถูกแปลงเป็น false ทั้งหมด ค่าอื่นๆ จะถูกแปลงเป็น true
ตัวอย่าง:
let age = 18;if (age >= 18) console.log('ผู้ใหญ่');if (age >= 18) { console.log('ผู้ใหญ่');}คำสั่ง if-else
คำสั่ง if-else สามารถรันบลอกโค้ดที่แตกต่างกันตามเงื่อนไขที่แตกต่างกัน หากค่าของนิพจน์เป็น true จะรันบลอกโค้ดหลัง if มิฉะนั้นจะรันบลอกโค้ดหลัง else
ตัวอย่าง:
let age = 25;if (age >= 18) { console.log('ผู้ใหญ่');} else { console.log('ผู้เยาว์');}คำสั่ง else if
คำสั่ง else if เป็นส่วนขยายที่ใช้ในโครงสร้าง if-else ช่วยให้คุณสามารถเพิ่มหลายเงื่อนไขเพื่อตัดสิน
คำสั่ง else if จะประเมินนิพจน์เงื่อนไขหลัง if จากบนลงล่างตามลำดับจนกว่าจะพบเงื่อนไข true เมื่อพบเงื่อนไข true เงื่อนไขถัดไปจะไม่ถูกประเมินต่อไป จึงจำเป็นต้องออกแบบลำดับการจัดเรียงเงื่อนไขอย่างสมเหตุสมผลหรือเพิ่มเงื่อนไขการดำเนินการทางตรรกะ
ตัวอย่าง:
let score = 95;if (score >= 90) { console.log('ดีเยี่ยม');} else if (score >= 60) { //ลองเรียงลำดับเงื่อนไขนี้ไปที่อันดับแรกและดูว่าผลลัพธ์เป็นอย่างไร? console.log('ผ่าน');} else { console.log('ไม่ผ่าน');}คำสั่ง switch
คำสั่ง switch สามารถแทนที่การตัดสินแบบ if หลายครั้ง โดยทำการเลือกหลายทางตามค่าของนิพจน์
เมื่อรันคำสั่ง switch จะเปรียบเทียบนิพจน์หลัง switch และนิพจน์หลัง case แบบ เท่ากันอย่างเคร่งครัด ตามลำดับ
หากผลการเปรียบเทียบเป็น true คำสั่ง switch จะรันบลอกโค้ดหลัง case ที่สอดคล้อง จนกว่าจะพบคำสั่ง break ที่ใกล้ที่สุด (หรือจนถึงจุดสิ้นสุดของคำสั่ง switch)
หากไม่มี case ที่ตรงกัน จะรันบลอกโค้ด default (หาก default มีอยู่)
ตัวอย่าง:
let day = 7;switch (day) { case 1: console.log('วันจันทร์'); break; case 2: console.log('วันอังคาร'); break; case 6: //การจัดกลุ่ม case case 7: //หลาย case ที่ใช้โค้ดเดียวกันสามารถจัดกลุ่มเข้าด้วยกันได้ console.log('วันหยุดสุดสัปดาห์'); break; default: console.log('อื่นๆ');}break หยุด (จบ, ออกจาก) ลูป
break ใช้สำหรับหยุด (จบ, ออกจาก) ลูปปัจจุบันหรือคำสั่ง switch หากไม่มี break จะทำงานต่อ case ถัดไป (เกิดปรากฏการณ์ “ทะลุ”)
ตัวอย่าง:
let day = 2;switch (day) { case 1: console.log('วันจันทร์'); break; case 2: console.log('วันอังคาร'); // ไม่มี break จะทำงาน case ถัดไปต่อ case 3: console.log('วันพุธ'); break; default: console.log('อื่นๆ');}