ใน
ภาษา C นอกจากจะมีการใช้ if/else เพื่อการตัดสินใจแล้ว ยังมีการเขียนแบบ switch-case ซึ่งการเขียนแบบนี้จะเหมาะสำหรับการมีตัวเลือกที่ตายตัว เช่น หากตัวแปรเท่ากับ 1 ทำเคสแรก ตัวแปรเท่ากับ 2 ทำเคสสอง ต่างกับ if/else ที่การตัดสินใจโดยใช้ if/else นั้นจะสามารถกำหนดเงื่อนไขได้กว้างกว่า
บทความนี้จะพูดถึงการใช้ switch case โดยมีรูปแบบคือ
โค้ด: เลือกทั้งหมด
switch (ตัวแปร)
{ case ค่าคงที่ : ชุดคำสั่ง;
case ค่าคงที่ : ชุดคำสั่ง;
.
.
.
default : ชุดคำสั่ง;
มีการทำงานคือ switch จะทำการนำค่าของตัวแปรที่ส่งเข้ามาไปตรวจสอบว่าตรงกับ case ไหน แล้วจะทำตามชุดคำสั่งนั้น ๆ หากไม่ตรงกับ case ใดเลย โปรแกรมจะทำตามคำสั่งที่อยู่ใน default
ยกตัวอย่างเช่น
โค้ด: เลือกทั้งหมด
#include<stdio.h>
int main ()
{
int num = 3;
switch (num)
{
case 1: printf("one"); break;
case 2: printf("two"); break;
case 3: printf("three"); break;
default: printf("empty"); break;
}
return 0;
}
ผลที่ได้จะเป็น
three
เพราะกำหนดให้ตัวแปร num มีค่าเป็น 3 ซึ่งตรงกับ case 3
***หากไม่ใส่คำสั่ง break ด้านหลัง case จะทำให้โปรแกรมทำตามชุดคำสั่งที่อยู่หลัง case นั้น ๆ ทั้งหมด
ยกตัวอย่างเช่น
โค้ด: เลือกทั้งหมด
#include<stdio.h>
int main ()
{
int num = 2;
switch (num)
{
case 1: printf("one\n");
case 2: printf("two\n");
case 3: printf("three\n");
default: printf("empty\n");
}
return 0;
}
ผลที่ได้จะเป็น
two
three
empty
เนื่องจากไม่มี break จึงทำให้โปรแกรมทำการแสดงผลชุดคำสั่งใน case 3 แล้ว default ด้วย
บทความที่เกี่ยวข้อง
การเขียน if/else ในภาษา C
ใน[url=https://mindphp.com/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD/73-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/2182-c-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3.html]ภาษา C[/url] นอกจากจะมีการใช้ if/else เพื่อการตัดสินใจแล้ว ยังมีการเขียนแบบ switch-case ซึ่งการเขียนแบบนี้จะเหมาะสำหรับการมีตัวเลือกที่ตายตัว เช่น หากตัวแปรเท่ากับ 1 ทำเคสแรก ตัวแปรเท่ากับ 2 ทำเคสสอง ต่างกับ if/else ที่การตัดสินใจโดยใช้ if/else นั้นจะสามารถกำหนดเงื่อนไขได้กว้างกว่า
บทความนี้จะพูดถึงการใช้ switch case โดยมีรูปแบบคือ
[code]switch (ตัวแปร)
{ case ค่าคงที่ : ชุดคำสั่ง;
case ค่าคงที่ : ชุดคำสั่ง;
.
.
.
default : ชุดคำสั่ง;[/code]
มีการทำงานคือ switch จะทำการนำค่าของตัวแปรที่ส่งเข้ามาไปตรวจสอบว่าตรงกับ case ไหน แล้วจะทำตามชุดคำสั่งนั้น ๆ หากไม่ตรงกับ case ใดเลย โปรแกรมจะทำตามคำสั่งที่อยู่ใน default
ยกตัวอย่างเช่น
[code]#include<stdio.h>
int main ()
{
int num = 3;
switch (num)
{
case 1: printf("one"); break;
case 2: printf("two"); break;
case 3: printf("three"); break;
default: printf("empty"); break;
}
return 0;
}[/code]
ผลที่ได้จะเป็น
three
เพราะกำหนดให้ตัวแปร num มีค่าเป็น 3 ซึ่งตรงกับ case 3
***หากไม่ใส่คำสั่ง break ด้านหลัง case จะทำให้โปรแกรมทำตามชุดคำสั่งที่อยู่หลัง case นั้น ๆ ทั้งหมด
ยกตัวอย่างเช่น
[code]#include<stdio.h>
int main ()
{
int num = 2;
switch (num)
{
case 1: printf("one\n");
case 2: printf("two\n");
case 3: printf("three\n");
default: printf("empty\n");
}
return 0;
}[/code]
ผลที่ได้จะเป็น
two
three
empty
เนื่องจากไม่มี break จึงทำให้โปรแกรมทำการแสดงผลชุดคำสั่งใน case 3 แล้ว default ด้วย
บทความที่เกี่ยวข้อง
[url=https://www.mindphp.com/forums/viewtopic.php?f=16&t=62587]การเขียน if/else ในภาษา C[/url]