Chapter 6 Decision Statement SUCHADA PUNNOI Dept. of Computer Science & Information Technology http://computer.pcru.ac.th/KuBo/
การตัดสินใจในการเขียนโปรแกรม คำสั่งแบบมีเงื่อนไข แบ่งออกเป็น 2 คำสั่ง 1. IF Statement แบ่งเป็น 3 ลักษณะ - IF…Then… - IF…Then….Else… - IF… Then…Else…ซ้อนกันหลายชั้น 2. Select Statement
คำสั่ง IF…Then ใช้ในการเขียนโปรแกรมที่สั่งให้เครื่องคอมพิวเตอร์ตัดสินใจเลือกเงื่อนไขที่เป็นจริง แล้วให้ปฏิบัติตามคำสั่งที่ต้องการ โดยมีทางเลือก 1 ทางเท่านั้น รูปแบบ If เงื่อนไข Then คำสั่ง 1
ตัวอย่างการใช้คำสั่ง If..Then หากใส่ค่า x เป็น 0 แล้วกดปุ่มทดสอบ จะแสดงข้อความว่า Hello และ Bye หากใส่ค่า อื่น จะแสดงคำว่า Bye Start x x = 0 End Bye Hello y n
ตัวอย่างการใช้คำสั่ง If..Then ให้สร้างหน้าฟอร์ม ดังนี้ Code ปุ่มทดสอบ Private Sub Command1_Click() If Text1.Text = 0 Then Text2.Text = "Hello" Text3.Text = " Bye“ End Sub Code ปุ่มClear Private Sub Command2_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" End Sub หากใส่ค่า x เป็น 0 แล้วกดปุ่มทดสอบ จะแสดงข้อความว่า Hello และ Bye หากใส่ค่า อื่น จะแสดงคำว่า Bye
คำสั่ง If…Then…Else Statement เป็นคำสั่งที่มีการตรวจสอบเงื่อนไขแล้วมีทางเลือก 2 ทางเลือก โดยการพิจารณาจากเงื่อนไขที่ได้ รูปแบบ If เงื่อนไข Then คำสั่ง 1 Else คำสั่ง 2 End If
Flow-Chart : If…Then…Else Statement condition Statement ; True False
ตัวอย่างการใช้คำสั่ง If..Then..Else หากใส่ค่า x เป็น 0 แล้วกดปุ่มทดสอบ จะแสดงข้อความว่า Equal zero และ Bye หากใส่ค่า อื่น จะแสดงคำว่า Not Equal Zero และ Bye Start x x = 0 y n Not Equal zero Equal zero Bye End
ตัวอย่างการใช้คำสั่ง If..Then..Else ให้สร้างหน้าฟอร์ม ดังนี้ Code ปุ่มทดสอบ Private Sub Command1_Click() If Text1.Text = 0 Then Text2.Text = "Equal zero" Else Text2.Text = "Not Equal zero" End If Text3.Text = " Bye" End Sub Code ปุ่มClear Private Sub Command2_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" End Sub
คำสั่ง IF…Then…Else…ซ้อนกันหลายชั้น คำสั่ง 1 Elseif เงื่อนไข Then คำสั่ง 2 คำสั่ง 3 Else คำสั่ง 4 (คำสั่งที่ไม่ตรงเงื่อนไขใดเลย) End if
Flow-Chart : IF…Then…Else…ซ้อนกันหลายชั้น
เปรียบเทียบระหว่าง 2 ทางเลือก และ มากกว่า 2 ทางเลือก If เงื่อนไข Then คำสั่ง 1 Else คำสั่ง 2 End If If เงื่อนไข Then คำสั่ง 1 Elseif เงื่อนไข Then คำสั่ง 2 คำสั่ง 3 Else คำสั่ง 4 End if
ตัวอย่างการใช้คำสั่ง If..Then..Else ซ้อนกันหลายชั้น Start ป้อนตัวเลข 1 จำนวน เมื่อกดปุ่ม ทดสอบ หากตัวเลขนั้นมากกว่า 0 ให้แสดงข้อความว่า More than Zero หากตัวเลขนั้นน้อยกว่า 0 ให้แสดงข้อความว่า Less than Zero หากตัวเลขนั้นมีค่าเป็น 0 ให้แสดงข้อความว่า Equal Zero หลังจากนั้นให้แสดงคำว่า Bye x y x > 0 n y n More than Zero x < 0 Less than Zero Equal zero Bye End
ตัวอย่างการใช้คำสั่ง If..Then..Else หลายชั้น Code ปุ่มตรวจสอบค่า ให้สร้างหน้าฟอร์ม ดังนี้ Private Sub Command1_Click() If Text1.Text > 0 Then Text2.Text = "More Than Zero" ElseIf Text1.Text < 0 Then Text2.Text = "Less Than Zero" Else Text2.Text = "Equal Zero" End If Text3.Text = "Bye" End Sub Code ปุ่มClear Code ปุ่มClose Private Sub Command2_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" End Sub Private Sub Command3_Click() End End Sub
คำสั่ง Select Case เป็นคำสั่งที่เหมาะสำหรับการตรวจสอบเงื่อนไขและมีทางเลือกให้ทำมากกว่า 2 ทางเลือก นิยมใช้ในกรณีที่เงื่อนไขการตัดสินใจขึ้นอยู่กับตัวแปรเพียงตัวเดียว คำสั่ง Select Case มีลักษณะการทำงานคล้ายกับคำสั่ง If…Then…Else แบบซ้อนกันหลายชั้น คือ มีการตัดสินใจในการทงานมากกว่า 2 ทางเลือก แต่จะมีโครสร้างซับซ้อนน้อยกว่าคำสั่งแบบ If…Then…Else แบบซ้อนกันหลายชั้น
รูปแบบ คำสั่ง Select Case คำสั่ง 1 Case เงื่อนไข 2 หรือ ค่าคงที่ 2 คำสั่ง 2 Case เงื่อนไข 3 หรือ ค่าคงที่ 3 คำสั่ง 3 Case เงื่อนไข n หรือ ค่าคงที่ n คำสั่ง n Case Else คำสั่ง...( คำสั่งที่ไม่ตรงกับ case ใด ๆ เลย ) End Select
Flow-Chart : Select Case condition value1 … value2 value n else S ; Statement ;
ตัวอย่างการใช้คำสั่ง Select Case Start x ป้อนตัวเลข 1 จำนวน เมื่อกดปุ่ม ทดสอบ หากตัวเลขนั้นมากกว่า 0 ให้แสดงข้อความว่า More than Zero หากตัวเลขนั้นน้อยกว่า 0 ให้แสดงข้อความว่า Less than Zero หากตัวเลขนั้นมีค่าเป็น 0 ให้แสดงข้อความว่า Equal Zero หลังจากนั้นให้แสดงคำว่า Bye x > 0 < 0 else More than Zero Less than Zero Equal zero Bye End
ตัวอย่างการใช้คำสั่ง Select Case Code ปุ่มตรวจสอบค่า ให้สร้างหน้าฟอร์ม ดังนี้ Private Sub Command1_Click() Select Case Text1.Text Case Is > 0 Text2.Text = "More Than Zero" Case Is < 0 Text2.Text = "Less Than Zero" Case Else Text2.Text = "Equal Zero" End Select Text3.Text = "Bye" End Sub Code ปุ่มClear Private Sub Command2_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" End Sub Code ปุ่มClose Private Sub Command3_Click() End End Sub