หน้าหลัก
แนะนำรายวิชา
แบบทดสอบก่อนเรียน
บทที่ 1 ภาษาคอมพิวเตอร์
บทที่ 2 แนวคิดการโปรแกรม
บทที่ 3 ผังงาน
บทที่ 4 รหัสเทียม
บทที่ 5 โครงสร้างภาษาซี
บทที่ 6 ติดตั้งโปรแกรม Dev-c
บทที่ 7 ตัวแปรภาษาซี
บทที่ 8 ตัวดำเนินการภาษาซี
บทที่ 9แสดงผล/รับข้อมูล
บทที่10 ควบคุมการแสดงผล
บทที่ 11 การเลือกทำตามเงื่อนไข
บทที่ 12 คำสั่งวนซ้ำ
แบบทดสอบหลังเรียน
แหล่งศึกษาเพิ่มเติม

 

 

การควบคุมเงื่อนไขด้วย switch-case (switch-statement)

นอกจากประโยคคำสั่ง if-else แล้วในภาษา c ก็ยังมีการควบคุมเงื่อนไขด้วยการใช้ประโยคคำสั่ง switch

โดยประโยคคำสั่ง switch เหมาะกับการนำไปประยุกต์ใช้กับโปรแกรมที่มีเมนูให้เลือกรายการต่างๆ การใช้ switch-case

จะต้องเป็นตัวแปรแบบ int เท่านั้น

รูปแบบ :


switch (integer_expression)
{
case constant_1;
statement_1;
break;

case constant_2;
statement_2;
break;

case constant_3;
statement_3;
break;

default;
statement;

}

ผลการตรวจสอบเงื่อนไข จะขึ้นอยู่กับค่า integer ถ้าเงื่อไขที่ตรวจสอบอยู่ภายในเงื่อนไขที่กำหนด

ก็จะทำงานชุดคำสั่งภายในเงื่อนไขนั้น แต่ถ้าหากไม่พบเงื่อนไขตามที่กำหนดไว้เลย ก็จะไปทำชุดคำสั่ง

ที่ default แทน เงื่อนไขของแต่ละ case นั้นควรบรรจุคำสั่ง break เข้าไปด้วยทั้งนี้เพื่อป้องกันมิให้

ตรวจสอบเงื่อนไขถัดไป ส่วนกรณี default นั้นไม่จำเป็นต้องมีคำสั่ง break

ข้อแตกต่างระหว่างประโยคคำสั่ง if-else และ switch

1. นิพจน์ชนิดตังเลขจำนวนจริง ที่มีจุดทศนิยมจะนำมาตรวจสอบด้วย switch ไม่ได้


2. ชนิดข้อมูลที่สามารถนำมาใช้ตรวจสอบใน switch คือชนิดข้อมูลแบบ int หรือ char


3. การตรวจสอบค่าใน case ของ switch แต่ละกรณีไม่สามารถนำค่าตัวแปรมาใช้ได้ เช่น case a+1: ถือว่าใช้งานไม่ได้


4. switch ไม่สามารถตรวจสอบหลายๆ เงื่อนไขภายในนิพจน์เดียวกันได้ เช่น

switch(num)
{
case > 0 && <5
: :
}

 

ตัวอย่าง การเขียนโปรแกรมโดยใช้ switch case

#include <stdio.h>

main()

{

int x;

printf("Pleas Enter Number 1-4 = ");

scanf("%d",&x);

switch (x)

{

case 1:

printf("You choose 1");

break;

case 2:

printf("You choose 2");

break;

case 3:

printf("You choose 3");

break;

case 4:

printf("You choose 4");

break;

default:

printf("You didn't choose 1,2,3 or 4");

}

}

โปรแกรมนี้ถ้าเราเลือก 1 เครื่องจะแสดงผลว่า You choose 1 ถ้าเราเลือก 2 เครื่องจะแสดงผลว่า You choose 2

และ 3 4 ตามลำดับ แต่ถ้าเราเลือกเกินจากนี้เครื่องจะแสดงผลว่า You didn't choose 1,2,3 or 4