การเขียน switch case ในภาษา C

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: การเขียน switch case ในภาษา C

การเขียน switch case ในภาษา C

โดย Grammanano » 11/12/2019 5:52 pm

ในภาษา 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

ข้างบน