×

คำเตือน

JUser: :_load: Unable to load user with ID: 6465

ให้เรตสมาชิก: 3 / 5

ดาวใช้งานดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

บทที่ 13 JavaScript Switch Statement


   Switch Statement คือเงื่อนไขแบบหนึ่งที่ใช้ในการเขียนโปรแกรม นิยมใช้ในกรณีที่เรามีเงื่อนไขที่ต้องตรวจสอบอยู่หลายเงื่อนไข ซึ่งมีลักษณะคล้ายกับ if...else  แต่ต่างกันที่ เงื่อนไขแบบ Switch นี้จะใช้การตรวจสอบเพียงครั้งเดียวแล้วไล่ดูว่าเข้ากับ case ไหน ก็จะทำตามคำสั่งใน case นั้นไป แต่ถ้าไม่ตรงกับ case ใดๆเลย ก็จะทำตามคำสั่งใน default  ส่วนเงื่อนไขแบบ IF...else นั้นจะมีการตรวจสอบไปที่ล่ะตัวเลือก ซึ่งหากมีหลายตัวเลือกก็จะต้องทำการเช็คหลายครั้ง ทำให้ไม่สะดวก


switch(สิ่งที่ต้องการตรวจสอบ)
{
case 1:
  คำสั่งที่  1
  break;
case 2:
  คำสั่งที่  2
  break;
default:
  กรณีที่ไม่ตรงกับคำสั่งใดๆเลย
}
 

 

จากรูปแบบของคำสั่งโปรแกรมจะตรวจสอบจากตัวแปรที่คำสั่ง Switch (ตัวแปรในวงเล็บ)ว่ามีค่าเป็นเท่าไรแล้วนำมาตรวจสอบกับคำสั่ง case ถ้าตรงกับค่าของ case ใดก็จะทำงานตาม คำสั่งใน case นั้น เมื่อทำงานเสร็จ จะพบคำสั่ง break มีผลทำให้ออกไปจากคำสั่ง switch ทันที ในกรณีที่ไม่มีค่าใดตรงกับ case ที่ระบุโปรแกรม จะมาทำงานที่คำสั่ง default โดยอัตโนมัติ
ตัวอย่างเช่น


switch(อาหารกลางวันที่ชอบ)
{
case 1:
  คำสั่งที่  พิชซ่า
  break;
case 2:
  คำสั่งที่  เกี๊ยวกุ้ง
  break;
default:
  ไม่ชอบเลยสักอย่าง อยากกินอย่างอื่น
}

code ตัวอย่าง

 
<body>
<p id="demo"></p>

<script>
var i=200;
switch (i) {
    case 100:
        score = "100";
        break;
    case 200:
        score = "200";
        break;
    case 300:
        score = "300";
        break;
    default:
        score="ไม่ตรงกับค่าไหนเลย";
}
document.getElementById("demo").innerHTML = "คะแนนของคุณ" + score+"แต้ม";
</script>
</body>

ผลลัพธ์


*** หมายเหตุ
  การใช้คำสั่ง break เป็นการสั่งให้โปรแกรมออกคำสั่ง switch หากเจอเงื่อนไขที่่ต้องการแล้ว มิฉะนั้นโปรแกรมจะยังตรวจสอบเงื่อนไขไปเรื่อยๆ เเม้ว่าจะพบเงื่่อนไขที่ต้องการเเล้วก็ตาม ส่วน defalt นั้นเราจะมีหรือไม่มีก็ได้ ขึ้นอยู่ที่เงื่อนไขที่เรามีนั้นครอบคลุมทุกค่าแล้วหรือไม่ เพราะค่า defalt นั้นจะถูกนำมาใช้ในกรณีทีไม่ตรงกับเงื่อนไขใดๆเลย

ข้อมูลอ้างอิง
http://www.buksohn.com
http://www.w3schools.com

ชื่อ
javascript13
หมวดหมู่
Javascript, Javascript
ฮิต
9393
ผู้สร้างเอกสาร
วันที่สร้างเอกสาร
2016-06-03 13:33:34

javascript13.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 629 bytes

ผู้อัพโหลดไฟล์

วันที่อัพโหลด 2016-06-03 06:32:45


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
บริษัท RCP ลูกค้ายืนยันการใช้งานได้ให้อัพขึ้นฐานจริง
โดย Rujikon พฤ 21 มิ.ย. 2018 7:20 pm บอร์ด Mindphp Task (ทดลองงาน)
2
5
ศ 22 มิ.ย. 2018 3:56 am โดย mindphp
New อัพเดท state auto หลังR- จาก state ของ RMA เป็น deliver [2018-06][003]
โดย Rujikon พฤ 21 มิ.ย. 2018 7:18 pm บอร์ด อาร์ซีพี โกลบอล จำกัด - Tester
1
2
พฤ 21 มิ.ย. 2018 7:19 pm โดย Rujikon
R - เปลี่ยนชื่อปุ่ม RMA Line จาก Confirm เป็น Receive [2018-06][002]
โดย Rujikon พฤ 21 มิ.ย. 2018 7:13 pm บอร์ด อาร์ซีพี โกลบอล จำกัด - Tester
2
3
พฤ 21 มิ.ย. 2018 7:14 pm โดย Rujikon
Q - Import ไฟล์ Customer เข้าระบบไม่ได้
โดย Rujikon พฤ 21 มิ.ย. 2018 4:49 pm บอร์ด บริษัท เซนิธ เบบี้ แคร์ จำกัด - Tester
3
8
พฤ 21 มิ.ย. 2018 4:59 pm โดย thatsawan
ยืนยันหน้าจอการทำงานของ auto transfer และคำถาม
โดย nuattawoot พฤ 21 มิ.ย. 2018 2:06 pm บอร์ด Hachanna - Testter
5
27
ศ 22 มิ.ย. 2018 4:13 am โดย mindphp
ฺB - ปรับ Inventory loss แล้วไม่ได้อย่างที่กระทู้แนะนำ [2018-06][009]
โดย Rujikon พฤ 21 มิ.ย. 2018 1:59 pm บอร์ด Hachanna - Testter
0
2
พฤ 21 มิ.ย. 2018 1:59 pm โดย Rujikon
Q - เรื่องภาษี [2018-06][008]
โดย Rujikon พฤ 21 มิ.ย. 2018 1:48 pm บอร์ด Hachanna - Testter
0
5
พฤ 21 มิ.ย. 2018 1:48 pm โดย Rujikon
งานประจำวันที่ 21มิถุนายน 2561
โดย taemmynatchapon พฤ 21 มิ.ย. 2018 10:19 am บอร์ด M063 - ณัชพล ชัยวุฒิ
0
1
พฤ 21 มิ.ย. 2018 10:19 am โดย taemmynatchapon
งานประจำวันที่ 21 มิถุนายน 2561
โดย Rujikon พฤ 21 มิ.ย. 2018 10:05 am บอร์ด M060 - นายรุจิกร พงษ์พิละ
2
8
พฤ 21 มิ.ย. 2018 7:22 pm โดย Rujikon
งานประจำวันที่ 21 มิถุนายน 2561
โดย wilawan พฤ 21 มิ.ย. 2018 9:48 am บอร์ด M062 - วิลาวัณย์ นักษัตรมณฑล
1
12
พฤ 21 มิ.ย. 2018 6:46 pm โดย wilawan
งานประจำวันที่ 21 มิถุนายน 2561
โดย Parichat พฤ 21 มิ.ย. 2018 9:37 am บอร์ด M061 - ปาริชาติ รัตโณภาส
1
4
พฤ 21 มิ.ย. 2018 7:14 pm โดย Parichat
เมื่อมีโอกาสทำงาน...
โดย mindphp พฤ 21 มิ.ย. 2018 12:59 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
20
พฤ 21 มิ.ย. 2018 12:59 am โดย mindphp
R - รายละเอียดวิธีคิดต้นทุนสินค้า [2018-06][007]
โดย Rujikon พ 20 มิ.ย. 2018 8:06 pm บอร์ด Mindphp Task (ทดลองงาน)
0
2
พ 20 มิ.ย. 2018 8:06 pm โดย Rujikon
สอบถามเกี่ยวกับ onclick html
โดย AePongsak พ 20 มิ.ย. 2018 6:33 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
0
20
พ 20 มิ.ย. 2018 6:33 pm โดย AePongsak
B - ปุ่มปริ้น inv มี 2 ปุ่ม
โดย thatsawan พ 20 มิ.ย. 2018 6:25 pm บอร์ด M.D.Soft Co.,Ltd. - Tester
0
1
พ 20 มิ.ย. 2018 6:25 pm โดย thatsawan
R - รายละเอียดวิธีคิดต้นทุนสินค้า [2018-06][007]
โดย Rujikon พ 20 มิ.ย. 2018 4:21 pm บอร์ด Hachanna - Testter
1
13
พ 20 มิ.ย. 2018 9:00 pm โดย Rujikon
B - หน้า Detail ช่องว่างด้านล่างเยอะไป
โดย AePongsak พ 20 มิ.ย. 2018 2:23 pm บอร์ด Doy-shop ( 15 พ.ค. - 29 พ.ค. 61)
1
8
พฤ 21 มิ.ย. 2018 12:00 pm โดย Parichat
B - คลิกที่รูปแล้วไม่ไปหน้า Detail
โดย AePongsak พ 20 มิ.ย. 2018 2:20 pm บอร์ด Doy-shop ( 15 พ.ค. - 29 พ.ค. 61)
1
3
พฤ 21 มิ.ย. 2018 1:11 pm โดย Parichat
B - กรอบหน้าดาวน์โหลดไม่โค้ง
โดย AePongsak พ 20 มิ.ย. 2018 2:11 pm บอร์ด Doy-shop ( 15 พ.ค. - 29 พ.ค. 61)
1
7
พฤ 21 มิ.ย. 2018 5:16 pm โดย Parichat
B - ไม่เห็นตัวเลขที่ แบ่งหน้าสินค้า
โดย AePongsak พ 20 มิ.ย. 2018 2:07 pm บอร์ด Doy-shop ( 15 พ.ค. - 29 พ.ค. 61)
1
3
พฤ 21 มิ.ย. 2018 1:15 pm โดย Parichat