switch case
switch case เป็นอีกหนึ่งรูปแบบของการเลือกทำคำสั่งต่างๆ
รูปแบบคำสั่ง switch case เป็นดังนี้
รูปแบบคำสั่ง switch case เป็นดังนี้
switch (integer_expression)
{
case constant_1 :
statement_1;
break;
case constant_2 :
statement_2;
break;
case constant_3 :
statement_3;
break;
default :
statement;
}
Flowchart แสดงการทำงาน ของ switch case
ผลการตรวจสอบเงื่อนไข จะขึ้นอยู่กับค่า integer_expression ถ้าเงื่อนไขที่ตรวจสอบอยู่ภายในเงื่อนไขที่กำหนด ก็จะทำงานชุดคำสั่งภายใน case ของ constant นั้น แต่ถ้าหากไม่พบเงื่อนไขตามแต่ละ case ที่กำหนดไว้เลย ก็จะไปทำชุดคำสั่งที่ default แทน อย่างไรก็ตามเงื่อนไขของแต่ละ case นั้นควรบรรจุคำสั่ง break เข้าไปด้วยทั้งนี้เพื่อป้องกันมิให้ตรวจสอบเงื่อนไขถัดไป ส่วนกรณี default นั้นไม่จำเป็นต้องมีคำสั่ง break
ตัวอย่าง Switch Case
จงเขียนโปรแกรมแปลงตัวเลขโดด 0 - 3 ที่ผู้ใช้ป้อนเข้ามา ให้เป็นตัวหนังสือ Number to word
Algorithm (Number to Word)
เริ่มต้น
รับค่าตัวเลขมาเก็บไว้ในตัวแปล m
ตรวจเช็คเงื่อนไข m ตรงกับ เคสใด
หาก
ตรงกับเคส 3 จริง ให้แสดงข้อความว่า "Three" จากนั้นจบการทำงาน
ตรงกับเคส 2 จริง ให้แสดงข้อความว่า "Two" จากนั้นจบการทำงาน
ตรงกับเคส 1 จริง ให้แสดงข้อความว่า "One" จากนั้นจบการทำงาน
ไม่ตรงกับเคสใดเลย ให้แสดงข้อความว่า "Error.Input Number 0 to 3 only" จากนั้นจบการทำงาน
จบการทำงาน
จงเขียนโปรแกรมแปลงตัวเลขโดด 0 - 3 ที่ผู้ใช้ป้อนเข้ามา ให้เป็นตัวหนังสือ Number to word
Algorithm (Number to Word)
เริ่มต้น
รับค่าตัวเลขมาเก็บไว้ในตัวแปล m
ตรวจเช็คเงื่อนไข m ตรงกับ เคสใด
หาก
ตรงกับเคส 3 จริง ให้แสดงข้อความว่า "Three" จากนั้นจบการทำงาน
ตรงกับเคส 2 จริง ให้แสดงข้อความว่า "Two" จากนั้นจบการทำงาน
ตรงกับเคส 1 จริง ให้แสดงข้อความว่า "One" จากนั้นจบการทำงาน
ไม่ตรงกับเคสใดเลย ให้แสดงข้อความว่า "Error.Input Number 0 to 3 only" จากนั้นจบการทำงาน
จบการทำงาน
Program Flowchart (Number to Word)
Source Code (Number to Word)
#include <stdio.h>int main(){int m;printf("Please input Number (0 - 3): ");scanf("%d",&m);switch (m){case 0: printf("%d -> Zero\n" , m); break;case 1: printf("%d -> One\n" , m); break;case 2: printf("%d -> Two\n" , m); break;case 3: printf("%d -> Three\n" , m); break;default: printf("Error. Input Number 0 to 3 only.\n");}return 0;}