Page 1

2.4.4 คําสง่ ั switch ่ ั ใี่ ชใ้ นการเขีย • คํา ํ สง่ ั switch it h เป ป็ นคํา ํ สงที ี น ประโยคเงือ ่ นไขแบบหลายทาง โดยทีเ่ งือ ่ นไข น ันต้ ั้ อ ้ งเป ป็ นการเปรี ป ย ี บเทีย ี บต ัวแปรเดี ั ป ย ี วก ัน ั  รู ปแบบคําสัง่ switch (variable / expression) { case ค่าที่ 1 : statement 1; break; case value1 l 1 case value2 l 2 case value3 l 3 … case ค่าที่ 2 : statement 2;; break; default statement t t t 3; }

d f lt default

1


 

จะเข้้ าทํํางานคํําสัง่ั default d f lt ก็็ตอ่ เมื่ือเงืื่อนไขไม่ ไ ไ ต่ รงกับั case ใดๆ ใ เลย ถ้ถาไมมคาสง าไม่มีคําสัง่ default เมอตรวจสอบแลวเงอนไขไมตรงกบ เมื่อตรวจสอบแล้ วเงื่อนไขไม่ตรงกับ case ใดๆ กจะไมทาคาสงใดๆ ก็จะไม่ทําคําสัง่ ใดๆ ภายใน switch – case นันเลย ้ ในทุกๆ case ควรมีคําสัง่ break; เพื่อปิ ดท้ าย case นันๆ ้ ยกเว้ น default เนื่องจากเป็ นกรณีสดุ ท้ าย จึงไม่ต้องมี คําสัง่ นี ้ใช้ ในการบอกให้ โปรแกรมหยุดุ การทํางาน และ กระโดดออกจากขอบเขตของ { } ที่ใกล้ ที่สดุ ถ้ าในแต่ละ case มี statement มากกว่า 1 statement สามารถใช้ ตอ่ กันได้ เลย โดยไม่ต้องเปิ ด{}

2


- ข้้ อมูลที่ีใช้้ ตรวจสอบเงืื่อนไขต้ ไ ้ องมีีคา่ ตายตัวั และมีีคา่ ที่ีมีความแตกต่า่ งกันั จํานวนน้ อย เช่น การทดสอบค่าของตัวแปร day ที่จะมีคา่ เพียง 7 ค่า เป็ป็ นต้้ น - ข้ อมูลที่ใช้ ตรวจสอบเงื่อนไข จะต้ องมีคา ่ เป็ นจํานวนเต็ม หรื อตัวอักขระ เท่านันั ้ - ไม่สามารถตรวจสอบเงื่อนไขจากข้ อมูลที่เป็ นช่วง ข้ อมูลที่เป็ นข้ อความ และ ข้ อมูลที่เป็ นเลขทศนิยมได้

3


ต ัวอย่าง: case ของ ตวอยาง: character switch (c) { case ‘+’: x = y + z; break; case ‘-’:: x = y - z; break;; case ‘*’: x = y * z; break; case ‘/’: x = y / z;; break; }

ต ัวอย่าง: case ของ ตวอยาง: expression switch (x+y) { case 1: x = y + x; break; case 2: printf(“x+y=2”); break;; case 3: printf(“x+y=3”); x=y+x; break; default : printf(“not 1,2,3”); }

4


/* How many days in a month? */ switch (month) { case 2: //Feb days y = 28;; break;; case 9: // Sep case 4: // April case 6: // June case 11: // Nov days = 30; break; default: days = 31; // All of the rest } i tf(“ There Th th \ ” days); d ) printf(“ are %d d days iin th thatt month.\n”,

5


#include <stdio.h> #include <conio.h> void main() () { int num; clrscr(); printf( "Enter a number [1-4]: [1 4]: "); scanf( "%d", &num );

}

switch ( num ) { case 1: printf( "one\n" ); break; case 2: printf( "two\n" ); break;; case 3: printf( "three\n" ); break; case 4: printf( "four\n" ); break; default: printf( "out of range\n" ); }

Enter a number [1-4]: 2 two

Enter a number [1-4]: 8 out of range

6


#include <stdio.h> #include <conio.h> void main() { int num; clrscr(); printf( "Enter a number [1-4]: "); scanf( "%d", &num );

}

switch ( num ) { case 1: printf( "one\n" ); case 2: printf( "two\n" ); case 3: printf( "three\n" ); case 4: printf( "four\n" ); default: printf( "out of range\n" ); }

กรณ ไมม กรณี ไม่ม ี คาสง คําสัง่ break; ในแต่ละ case Enter a number [1-4]: 2 t two three four out of range

Enter a number [1-4]: 8 out of range

7


Ex A. จงเขียนโปรแกรมเพื่อรับค่าเลขจํานวนเต็ม และหาว่าเลขที่รับมานันใช้ ้ แทนชื่อวันอะไร ให้ แสดงชื่อวันนันออกทางจอภาพ ้ โดยเลข 1 จะใช้ แทนวันจันทร์ เลข 2 ใช้ แทนวันอังคาร ไปเรื่ อยๆ จนถึงเลข 7 ใช้ แทนวันอาทิตย์

Ex B. จงเขียนโปรแกรมเพือ ่ ตรวจสอบ ั ั ี่ ั ตวอกษรทรบจากแปนพมพ ป้ ิ ์ ถาเป ้ ป็ นสระให ส ใ ้ พิมพ์ขอ ้ ความบอกว่าเป็นสระ (vowel) แต่ ถ้าไม่ใชใ่ ห้บอกว่าเป็นต ัวอ ักษรปกติ ถาไมใชใหบอกวาเปนตวอกษรปกต (consonant) 8


#include <stdio.h> #include <conio.h> void main() { int Number; clrscr(); printf( "Enter Number of Day(1-7): " ); scanf( "%d" %d , &Number );

}

switch(Number) { case 1 : printf(“Monday\n”); break; case 2 : printf(“Tuesday\n”); break; case 3 : printf(“Wednesday\n”); break; case 4 : printf(“Thursday\n”); printf( Thursday\n ); break; case 5 : printf(“Friday\n”); break; case 6 : printf(“Saturday\n”); break; case 7 : printf(“Saturday\n”); printf( Saturday\n ); break; default: printf( “Please Enter only Number 1-7\n" ); } 9


h> #include <stdio <stdio.h> #include <conio.h> void main() { char ch;

Enter a letter: a is a vowel

clrscr(); printf( "Enter a letter: " ); scanf( "%c", &ch ); switch(ch) { case 'A': case case 'E': E : case case 'I': case case 'O': case case 'U': case printf( "is a break; default: printf( "is is a } }

Enter a letter: P is a consonant

'a': 'e': e : 'i': 'o': 'u': vowel\n" );

consonant\n" consonant\n ); 10


switch(watts) { case 40 : case 60 : duration = 2500; break; case 100 : duration = 2000; break; case 1000 : duration = 2300; break; default : duration = 0; break; }

11


if (number == 1) printf(“Have a good breakfast”); else l if (number ( b == 2) printf(“Have a nice lunch”); else if ((number == 3) || (number == 4) || (number == 5)) printf(“Have a copious supper”);

12

ทบทวน switch  
Read more
Read more
Similar to
Popular now
Just for you