วันจันทร์ที่ 19 กันยายน พ.ศ. 2554

การเขียนโปรแกรมแบบ เงื่อนไข

1. if else if

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

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


 ตัวแปร = (เงื่อนไขการเปรียบเทียบข้อมูล)? ค่าที่ 1 : ค่าที่ 2 :


โดยมีรายละเอียดดังนี้
ถ้าเงื่อนไขการเปรียบเทียบข้อมูลได้เป็นจริง ตัวแปรทางด้านซ้าย จะมีค่าเท่ากับ ค่าที่ 1 และถ้าเงื่อน ไขการเปรียบเทียบข้อมูลได้เป็นเท็จ ตัวแปรทางด้านซ้าย จะมีค่าเท่ากับค่าที่ 2

การเปรียบเทียบข้อมูลด้วยคำสั่ง IF
การเปรียบเทียบข้อมูลด้วยคำสั่ง IF (IF statement) เป็นลักษณะโครงสร้างของคำสั่งเป็นข้อคำสั่ง สำหรับกำหนดให้โปรแกรมทำงานแบบมีเงื่อนไข โดยทำการทดสอบค่ากับข้อมูลที่ต้องการตามเงื่อนไขของ การเปรียบเทียบ ผลที่ได้จากการทดสอบเงื่อนไขมีความเป็นไปได้ 2 ทิศทาง คือ ผลการทดสอบที่ให้ค่าเป็น จริง (True) และผลการทดสอบที่ให้ค่าเป็นเท็จ (False) โดยมีลักษณะโครงสร้างการทำงานต่อไปนี้


 if (เงื่อนไขการเปรียบเทียบข้อมูล)
คำสั่งที่ 1 :
else
คำสั่งที่ 2 :


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

Level = (Point < 150) ? "SILVER" : "GOLD" ;

สำหรับในประโยคคำสั่งการเปรียบเทียบข้อมูลด้วยคำสั่ง IF จะเขียนรูปแบบโครงสร้างเงื่อนไขได้ ดังนี้

Level = (Point < 150) ? "SILVER" : "GOLD" ;
Level = "SILVEL" ;
Else
Level = "GOLD" ;

สำหรับในกรณีที่ประโยคคำสั่งสำหรับเงื่อนไขการเปรียบเทียบข้อมูลได้เป็นจริง หรือได้เป็นเท็จ มีมากกว่า 1 ประโยคคำสั่ง ให้เขียนกลุ่มประโยคคำสั่งเหล่านั้นอยู่ในบล็อกคำสั่งโดยเขียนภายใต้เครื่อ งหมายวงเล็บปีกกา { กลุ่มของประโยคคำสั่ง } มีรูปแบบรายละเอียดดังนี้


 if (เงื่อนไขการเปรียบเทียบข้อมูล)
{คำสั่งที่ 1 เมื่อเป็นจริง ;
คำสั่งที่ 2 เมื่อเป็นจริง ;
…………………….. ; }
else
{คำสั่งที่ 1 เมื่อเป็นเท็จ ;
คำสั่งที่ 2 เมื่อเป็นเท็จ ;
…………………….. ; }

ตัวอย่างโปรแกรม : เป็นการเขียนโปรแกรมโดยใช้การเปรียบเทียบ คะแนนด้วยคำสั่ง IF เพื่อหาผลการสอบของนักเรียน





การเขียนคำสั่ง IF ซ้อนเงื่อนไข
เป็นการเขียนโครงสร้างการเปรียบเทียบข้อมูลอย่างมีเงื่อนไขที่มีหลาย ๆ ชุดคำสั่งของประโยค เงื่อนไขซ้อนกัน มีรูปแบบโครงสร้างดังนี้


 if (เงื่อนไขการเปรียบเทียบข้อมูลที่ 1)
คำสั่งที่ 1 ;
else if (เงื่อนไขการเปรียบเทียบข้อมูลที่ 2)
คำสั่งที่ 2 ;
else if (เงื่อนไขการเปรียบเทียบข้อมูลที่ 3)
คำสั่งที่ 3 ;
else …ต่อ ๆ ไปจนจบเงื่อนไขที่ต้องการ


โดยมีรายละเอียดดังนี้
ถ้าเงื่อนไขการเปรียบเทียบข้อมูลที่ 1 ได้เป็นจริง จะทำงานตามทิศทางของคำสั่งที่ 1 แล้วจบประโยคคำสั่ง IF
ถ้าเงื่อนไขการเปรียบเทียบข้อมูลที่ 2 ได้เป็นจริง จะทำงานตามทิศทางของคำสั่งที่ 2 แล้วจบประโยคคำสั่ง IF
ถ้าเงื่อนไขการเปรียบเทียบข้อมูลที่ 3 ได้เป็นจริง จะทำงานตามทิศทางของคำสั่งที่ 3 แล้วจบประโยคคำสั่ง IF
แล้วทำการเปรียบเทียบเช่นนี้ไปเรื่อย ๆ จนจบเงื่อนไขที่ต้องการ
ตัวอย่างโปรแกรม : เป็นการเขียนโปรแกรมโดยใช้การเปรียบเทียบ คะแนนด้วยคำสั่ง IF ซ้อนกัน เพื่อหาเกรดของนักเรียน

โดย
คะแนน < 50 เกรดที่ได้เป็น "E"
คะแนน < 60 เกรดที่ได้เป็น "D"
คะแนน < 70 เกรดที่ได้เป็น "C"
คะแนน < 80 เกรดที่ได้เป็น "B"
คะแนน >= 80 เกรดที่ได้เป็น "A"





การคัดเลือกข้อมูลด้วยคำสั่ง SWITCH
เป็นอีกหนทางหนึ่ง ในการแก้ปัญหาการใช้คำสั่งในการเปรียบเทียบข้อมูลด้วยคำสั่ง IF ในกรณีที่มี หลายชุดคำสั่งมีการเปรียบเทียบจากค่าคงที่ซ้อนกันอยู่ภายในโครงสร้างซึ่งการเขียนด้วยประโยคคำสั่ง IF มีผลทำให้รูปแบบการเขียนโปรแกรมดูยาว อาจทำให้เกิดการสับสน การคัดเลือกข้อมูลด้วยคำสั่ง Switch จะทำการเปรียบเทียบค่าของตัวแปรว่าตรงกับค่าคงที่ใด และค่าคงที่นี้จะไม่อยู่ในลักษณะของช่วงข้อมูล ตัวอย่างเช่น อายุอยู่ในช่วง 25-30 ปี เป็นต้น และนอกจากนี้คำสั่ง Switch จะมีเฉพาะในจาวาสคริปต์ รุ่น 1.2 หรือใช้ได้กับ Netscape รุ่น 4.x ในขณะนี้เท่านั้น



โดยมีรายละเอียดดังนี้
เมื่อผลจากการทดสอบตัวแปรที่อยู่ในวงเล็บหลังคำสั่ง switch ให้ผลลัพธ์หรือค่าของข้อมูลตรง กับค่าคงที่ของตัวเลือก case ใด ก็จะไปดำเนินงานตามคำสั่งนั้น แต่ถ้าผลการทดสอบไม่ตรงกับค่าใด ๆ เลยโปรแกรมจะทำงานตามคำสั่งสุดท้ายที่กำหนดไว้ใน default คำสั่ง break เป็นคำสั่งบอกการจบสิ้นของ คำสั่ง case โดยจะไม่มีการทดสอบค่าใด ๆ อีก แต่ถ้าไม่มีคำสั่ง break จะมีผลให้ประโยคคำสั่งจะดำเนิน งานจากคำสั่งที่ตรงตามค่าคงที่ของตัวเลือก case ลงมาทำคำสั่งอื่น ๆ ที่เหลืออยู่ถัดไป