วันอังคารที่ 2 พฤษภาคม พ.ศ. 2560

switch case statement Compares คำสั่งเปรียบเทียบตัวแปร ภาษาC



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ก็ตาม



ไม่มีความคิดเห็น: