หน่วยที่ 4 การเลือกทำตามเงื่อนไข

หน่วยที่ 4 การเลือกทำตามเงื่อนไข  (เอกสารประกอบการสอน)

คำสั่ง if

          คำสั่งเลือกแบบทางเดียว (if) การเลือกแบบทางเดียวเพื่อจะตรวจสอบว่าชุดคำสั่งที่ตามมาจะทำหรือไม่ ในภาษาซีจะใช้คำสั่ง if ในการทำงานของคำสั่งคอมพิวเตอร์จะตรวจสอบเงื่อนไขก่อน ถ้าเงื่อนไขเป็นจริงจะทำคำสั่งหรือสเตตเมนต์ที่ตามหลังหรือเป็นสเตตเมนต์รวมที่อยู่ในเครื่องหมาย { } แต่ถ้าเงื่อนไขเป็นเท็จคอมพิวเตอร์จะทำคำสั่งหรือสเตตเมนต์ต่อไป
          สรุปคำสั่ง if ใช้ในการ ตัดสินใจ การทำงานคือ ถ้าเงื่อนไขหรือการเปรียบเทียบ เป็นจริง จะทำชุดคำสั่งที่กำหนดไว้ แต่ถ้าเป็นเท็จ ก็จะไม่ทำอะไรเลย

รูปแบบ if (เงื่อนไข condition)  คำสั่ง Statements ;  //เฉพาะบรรทัดเดียว

หรือ รูปแบบ if (เงื่อนไข condition) { คำสั่ง Statements ; }  //ใช้ {...} เมื่อมีหลายบรทัด

หรือ รูปแบบ if (การเปรียบเทียบ){ สิ่งที่ต้องการให้กระทำถ้าผลการเปรียบเทียบเป็นจริง ; }

 ตัวอย่างโปรแกรม?ถามอายุ

#include<stdio.h>
void main()
{
          int age;
          printf("How old are you ");
          scanf("%d",&age);
          if (age>=40)
                    printf("You are old\n");
          if (age<=20)
                    printf("You are young\n");
          printf("Good Bye ! ");
}

ตัวอย่างโปรแกรมสำหรับการเปรียบเทียบพร้อมๆ กัน?ถามอายุ

#include<stdio.h>
void main()
{
          int age;
          printf("How old are you ");
          scanf("%d",&age);
          if ((age>=40)&&(age<=80)||(age>=81))
                    printf("You are old\n");
          if ((age>=1)&&(age<=20))
                    printf("You are young\n");
          printf("Good Bye ! ");
}

/* หมายเหตุ

  • เครื่องหมาย && นั้น ถ้าค่าใดค่าหนึ่งเป็นเท็จจะทำให้ผลลัพธ์เป็นเท็จด้วย
  • เครื่องหมาย || นั้น จะให้ผลลัพธ์เป็นจริง ถ้าค่าใดค่าหนึ่งหรือทั้งหมดเป็นจริง  */

คำสั่ง if else

          คำสั่งเลือกทำอย่างใดอย่างหนึ่ง (if-else) ในกรณีที่คอมพิวเตอร์ต้องเลือกทำอย่างใดอย่างหนึ่ง โดยตรวจสอบเงื่อนไขที่กำหนดจะใช้คำสั่ง if-else โดยถ้าเงื่อนไขเป็นจริงจะทำคำสั่งหลัง if แต่ถ้าเงื่อนไขเป็นเท็จจะทำคำสั่งหลัง else โดยนิพจน์ที่ตามหลัง if จะเป็นข้อมูลทางตรรก

          สรุปคำสั่ง if else ใช้ในการ ตัดสินใจ การทำงานคือ ถ้าเงื่อนไข เป็นจริง จะทำชุดคำสั่งที่กำหนดไว้ แต่ถ้าเป็นเท็จ ก็จะทำอีกชุดคำสั่งหนึ่ง

รูปแบบ
if (เงื่อนไข condition)
{
          คำสั่ง Statements1;
}
else
{
          คำสั่ง Statements2;
}

ตัวอย่างโปรแกรม?บวกเลขที่ตัวเลขไม่น้อยกว่าศูนย์

#include<stdio.h>
void main()
{
          int a,b;
          printf("Enter number 1 :");
          scanf("%d",&a);
          printf("Enter number 2 :");
          scanf("%d",&b);
          if((a<=0)||(b<=0))
                    printf("a,b must not less than zero !\n");
          else
                    printf("answer = %d",a+b);
          printf("\nGood bye!");


คำสั่ง if elseif else 

          คำสั่ง if elseif else คือ คำสั่ง  if – else  เชิงซ้อน เป็นรูปแบบการทำงานแบบหลายทางเลือก  โดยจะมีคำสั่งเพียงเดียวเท่านั้นที่จะถูกเลือกให้ประมวลผล  ขึ้นอยู่กับว่า  เงื่อนไขทางเลือก ใดเป็นจริง  และในกรณีที่ไม่มี  เงื่อนไขทางเลือก  ใดเป็นจริงเลย  คำสั่ง  else  จะถูกประมวลผล
          สรุปคำสั่ง if elseif else คำสั่งนี้จะใช้ในกรณีที่มีการซ้อนเงื่อนไข

รูปแบบ
if (เงื่อนไข condition 1)
{
          คำสั่ง Statements 1
}
else if (เงื่อนไข condition 2)
{
          คำสั่ง Statements 2
}
else if (เงื่อนไข condition ..n)
{
          คำสั่ง Statements..n
}
else
{
          คำสั่ง Statements ( ไม่ตรงกับเงื่อนไขใดๆ)
}

 ตัวอย่างโปรแกรม?คำนวณเกรด

#include <stdio.h>

void main()
{
          int score;
          char grade;
          printf("Enter score : ");
          scanf("%d",&score);
          system("cls");                    //การล้างหน้าจอ
          if (score > 100)
                    grade = 'E';
          else if (score >= 80)
                    grade = 'A';
          else if ((score >= 70) && (score < 80))
                    grade = 'B';
          else if ((score >= 60) && (score < 70))
                    grade = 'C';
          else if ((score >= 50) && (score < 60))
                    grade = 'D';
          else grade = 'E';
                    printf("You got %c score",grade);
          getch();
}