switch case statement Compares คำสั่งเปรียบเทียบตัวแปร ภาษาC
2/5/2560 SONGCHAI PRAPATRUNGSEE
switch case statement Compares คำสั่งเปรียบเทียบตัวแปร ภาษาC
switch / case
statements Compares
เป็นคำสั่งเปรียบเทียบค่าตัวแปรถ้าเป็นจริงก็เข้ามาทำ
คำสั่ง switch / case เป็นคำสั่งเหมือน if
else if
คำสั่ง switch / case ใช้ในกรณีมีหลายเงื่อนไข
แต่ใช้งานง่ายกว่า
และรวดเร็วกว่าเพราะไม่ต้องมาคอยตรวจทีละเงื่อนไข
การใช้งาน2รูปแบบ
แบบที่1
switch (variable) 
{
   
case number0: 
        statement;  //one or more
        break;
   
case number1: 
        statement;  //one or more
    
   break;
   
default:   //have no have ok
       statement;  //one or more
  
    break;
}
เช่น
switch (oper) 
{
   
case 0: 
   
{
        int a=8;
        c=a+b; 
//one or more  
   
}
        break;
   
case 1: 
        c=a-b; 
//one or more
        break;
   
case 2: 
        c=a*b; 
//one or more
        break;
   
case 3: 
        c=a/b; 
//one or more
        break;
   
case 4: 
        c=a%b;  //one or more
        break;
   
default:   //have no have ok
       c=0;
      break;
}
////////////////////////////////////////////////////////
แบบที่2 
switch (variable) 
{
    case label:    
        statement;  //one or more
        break;
    case
label:
        statement;  //one or more
        break;
    default:
        statement;  //one or more
        break;
}
เช่น
switch (oper) 
{               
   
case '+': 
        c=a+b;  //one or more
        break;
   
case '-': 
        c=a-b; 
//one or more
        break;
   
case '*': 
        c=a*b;  //one or more
        break;
   
case '/': 
        c=a/b;  //one or more
        break;
   
case '%': 
        c=a%b;  //one or more
        break;
   
default:   //have no have ok
        c=0;
        break;
}
//////////////////////////////////////////////////////////////////
#include <REGX51.H>
void main(void)
{
        unsigned
char a=10,b=6,c,oper='-';
        while(1)
        {
                switch
(oper) 
                {               
                        case
'+': 
                                c=a+b;  //one or more
                                break;
                        case
'-': 
                                c=a-b;  //one or more
                                break;
                        case
'*': 
                                c=a*b;  //one or more
                                break;
                        case
'/': 
                                c=a/b;  //one or more
                                break;
                        case
'%': 
                                c=a%b;  //one or more
                                break;
                        default:   //have no have ok
                                c=0;
                                break;
                }
 
}
}
variable คือ ตัวแปร 
label  คือ ตัวอักษร หรือ เครื่องหมาย หรือตัวเลข
เขียนดังนี้
เช่น ‘ A ’   หรือ ‘ + ’    หรือ ‘ 1
’
‘ 
’  คือเครื่องหมาย
อัญประกาศเดี่ยว(single quotation mark)
ไว้รับค่าจากการพิมพ์
เป็นตัวอักษร หรือเครื่องหมาย หรือตัวเลข
เพียง1ตัวเท่านั้น 
ถ้าหลายตัวจะต้องใช้เป็นเครื่องหมายอัญประกาศคู่
(double quotation
marks)
“xxxxx” 
การใช้งานถ้าไม่มีคำสั่ง
break; จะถือว่าล้มเหลว
คือจะทำงานในเคส case: ที่เป็นจริงก่อน
จากนั้นก็จะทำงานใน case: ถัดไป
จนกว่าจะสิ้นสุดโครงสร้างคำสั่ง switch 
คำสั่งbreak; คือคำสั่งออกจากโครงสร้าง
switch ทันที
ส่วน default: เป็นทางเลือก
ในกรณีเปรียบเทียบแล้ว
ไม่ตรงกับเงื่อนไขใดก็จะเข้าไปทำใน
default:
default:
จะมีหรือไม่มีก็ได้
ถ้าต้องการประกาศตัวแปรภายในcaseก็สามารถทำได้
แต่ต้องใช้วงเล็บปีกกาจึงจะสามารถใช้ได้
และstatement จะต้องอยู่ในวงเล็บปีกกาด้วย
เช่น
case 1:
{
  
int a=1;    
   c=a+b;
}
break;
ถ้าไม่มีการประกาศตัวแปรภายใน case:
ก็ไม่ต้องใส่วงเล็บปีกกา
ถึงแม้ว่าจะเขียนหลายstatementก็ตาม
 
ไม่มีความคิดเห็น:
แสดงความคิดเห็น