คำสั่งเลือกเงื่อนไข

ในบทนี้ คุณจะได้เรียนรู้การควบคุมโปรแกรม โดยใช้คำสั่งเลือกเงื่อนไขในภาษา Visual Basic

ในการเขียนโปรแกรมนั้น เราอาจจะต้องการให้โปรแกรมให้ทำงานที่แตกต่างกันขึ้นกับเงือนไขต่างๆ ภายในโปรแกรม ยกตัวอย่างเช่น ถ้าวันนี้ฝนตก คุณจะไปทำงานด้วยรถส่วนตัว ถ้าไม่คุณจะไปทำงานโดยรถประจำทาง เราเรียกสิ่งนี้ว่าการตัดสินใจ ในคณิตศาสตร์มันคือประพจน์

นี่เป็น flowchart การทำงานของคำสั่งเลือกเงื่อนไข ในการเลือกเดินทางไปทำงาน

นี่เป็นแนวคิดที่นำมาใช้สำหรับการเขียนโปรแกรมเช่นกัน เพื่อควบคุมโปรแกรมให้ทำงานได้ตามต้องการ ในภาษา Visual Basic มีคำสั่งเลือกเงื่อนไขต่างๆ เช่น คำสั่ง If ElseIf Else และ Select Case เป็นต้น

คำสั่ง If

เราจะมาเริ่มเรียนจากคำสั่งเลือกเงื่อนไขที่พื้นฐานและง่ายที่สุดในภาษา Visual Basic นั่นคือคำสั่ง If ซึ่งเป็นคำสั่งควบคุมเพื่อให้โปรแกรมทำงานในเงือนไขที่กำหนด ในการใช้คำสั่ง If คุณจะต้องสร้างเงือนไขขึ้นมาสำหรับการทำงานของมัน ข้างล่างนี้เป็นรูปแบบการใช้งานคำสั่ง If

If Expression Then
statement
End If

ในการใช้คำสั่ง If คุณจะต้องสร้างเงือนไขขึ้นมาเราเรียกว่า Expression จะเป็นค่าของ Boolean ในบล็อคของคำสั่ง If จบด้วย End If เสมอ และโปรแกรมจะทำงานในบล็อคเมื่อ Expression เป็น True นอกเหนือจากนั้นมันจะข้ามการทำงานไป

Module IfStatement

Sub Main()

Dim isRain As Boolean = True
If isRain Then
Console.WriteLine("It's rain today.")
End If

Dim number As Integer = 10
If number Mod 2 = 0 And number < 20 Then
Console.Write("{0} is even number", number)
Console.WriteLine(" and less than 20.")
End If

If 5 = 7 Then
Console.WriteLine("Two numbers are equal.")
End If

End Sub

End Module

ในตัวอย่าง เป็นการใช้งานคำสั่ง If ในภาษา Visual Basic เพื่อสร้างเงื่อนไขให้โปรแกรมทำงาน

If isRain Then
Console.WriteLine("It's rain today.")
End If

นี่เป็นคำสั่งที่ใช้ในการตรวจสอบค่าของ Boolean ในตัวแปร isRain โปรแกรมจะตรวจสอบว่าตัวแปรมีค่าเป็น True หรือไม่ สำหรับตัวอย่างเราได้กำหนดค่า True ให้กับตัวแปรดังกล่าว ดังนั้นโปรแกรมจะทำงานในบล็อคของคำสั่ง If นี้

If number Mod 2 = 0 And number < 20 Then
Console.Write("{0} is even number", number)
Console.WriteLine(" and less than 20.")
End If

เราสามารถใช้คำสั่ง If ในการสร้างเงื่อนไขที่ซับซ้อนขึ้น โดยการใช้ตัวดำเนินการตรรกศาสตร์ช่วย ในส่วนนี้จากเงือนไข number Mod 2 = 0 หมายถึงตัวแปร number ต้องเป็นเลขคู่ และตัวเนินการ And ทำให้มันต้องมีค่าน้อยกว่า 20 ด้วย ในเงื่อนไข number < 20

If 5 = 7 Then
Console.WriteLine("Two numbers are equal.")
End If

และนี่เป็นตัวอย่างในกรณีที่เงื่อนไขเป็น False เพราะว่า 5 ไม่เท่ากับ 7 ดังนั้นโปรแกรมไม่ทำงานในบล็อคนี้

It's rain today.
10 is even number and less than 20.

นี่เป็นผลลัพธ์การทำงานการใช้งานคำสั่ง If ในภาษา Visual Basic

คำสั่ง If Else

คำสั่ง If Else นั้นทำงานเหมือนกับคำสั่ง If แต่จะมี Else clause เพิ่มเข้ามาสำหรับกรณีที่ในบล็อคของคำสั่ง If ไม่ถูกทำ หรือเงือนไขเป็น False นั่นเอง มันใช้สำหรับตรวจจับเงื่อนไขที่ตรงกันข้ามในคำสั่ง If นี่เป็นรูปแบบการใช้งาน

If Expression Then
statement
Else
statement
End If

รูปแบบการใช้คำสั่งนี้จะเพิ่มคำสั่ง Else เข้ามาและในตอนท้ายปิดบล็อคด้วยคำสั่ง End If เช่นเดิม ถ้าเงื่อนไขของ Expression เป็น True โปรแกรมทำงานในบล็อคคำสั่ง If ถ้าไม่มันทำในบล็อคคำสั่ง Else แทน

Module IfElseStatement

Sub Main()

Dim isRain As Boolean = True
If isRain Then
Console.WriteLine("I would go to work by my car.")
Else
Console.WriteLine("I would go to work by the bus.")
End If

Dim money As Double = 50.0
If money > 89.5 Then
Console.WriteLine("You can buy this game.")
Else
Console.WriteLine("You have not enough money.")
End If

End Sub

End Module

นี่เป็นตัวอย่างการใช้งานสำหรับคำสั่ง If Else ในภาษา Visual Basic เราใช้ในการควบคุมการทำงานของโปรแกรมที่มักจะมีสองทางเลือก

If isRain Then
Console.WriteLine("I would go to work by my car.")
Else
Console.WriteLine("I would go to work by the bus.")
End If

เราใช้คำสั่ง If ในการตรวจสอบเงือนไขในตัวแปร isRain นั่นหมายความว่าถ้าฝนตก คุณจะไปทำงานด้วยรถส่วนตัว ถ้าไม่ใช่จะไปทำงานโดยรถประจำทาง

If money > 89.5 Then
Console.WriteLine("You can buy this game.")
Else
Console.WriteLine("You have not enough money.")
End If

นี่เป็นอีกตัวอย่างหนึ่งที่เราใช้เปรียบเทียบว่าคุณมีเงินเพียงพอที่จะซื้อเกมหรือไม่ ในตัวแปรอย่างโปรแกรมจะบอกว่าคุณมีเงินไม่พอ เพราะเงือนไข money > 89.5 ไม่เป็นจริง

I would go to work by my car.
You have not enough money.

นี่เป็นผลลัพธ์ของโปรแกรม คุณอาจจะลองสร้างเงื่อนไขอื่นๆ หรือทำให้มันซับซ้อนมากขึ้น โดยใช้ตัวดำเนินการตรรกศาสตร์

คำสั่ง If ElseIf

คำสั่ง ElseIf ใช้ควบคุมการทำงานในกรณีที่โปรแกรมของเรามีหลายทางเลือก และมันจะใช้ควบคู่กับคำสั่ง If เสมอ นี่เป็นรูปแบบการใช้งานคำสั่ง ElseIf ในภาษา Visual Basic

If Expression1 Then
statement
ElseIf Expression2 Then
statement
ElseIf Expression3 Then
statement
...
ElseIf Expressions... Then
statement
End If

ในรูปแบบการใช้งาน เราต่อด้วยคำสั่ง ElseIf สำหรับเงื่อนไขที่สองเป็นต้นไปได้เรื่อยๆ โดยโปรแกรมจะตรวจสอบตั้งแต่ Expression1 ถ้าหากมีเงือนไขใดเป็น True โปรแกรมจะทำงานในบล็อคคำสั่งนั้น และข้ามการตรวจสอบเงื่อขไขที่เหลือทั้งหมดในทันที เช่นเดิม คุณสามารถใช้คำสั่ง Else ในกรณีที่ไม่ตรงกับเงื่อนไขใดๆ ก่อนหน้าได้

Module ElseIfStatement

Sub Main()

Dim a, b As Integer

Console.Write("Enter a: ")
a = CType(Console.ReadLine(), Integer)

Console.Write("Enter b: ")
b = CType(Console.ReadLine(), Integer)

If a > b Then
Console.WriteLine("a is greater than b.")
ElseIf a < b Then
Console.WriteLine("b is greater than a.")
Else
Console.WriteLine("a and b are equal.")
End If

End Sub

End Module

ในตัวอย่าง เป็นโปรแกรมที่รับค่าเลขเข้ามาสองตัว และนำการเปรียบเทียบเพื่อหาค่ามากที่สุดสองเลขสองจำนวนนั้น ในตอนแรกเราตรวจสอบเงือนไข a > b โดยคำสั่ง If ถ้าไม่เป็นจริงโปรแกรมจะตรวจเงือนไขต่อมา ในคำสั่ง ElseIf a < b และสำหรับคำสั่ง Else ในกรณีที่เงือนไขก่อนหน้าไม่มีอันไหนเป็นจริง

Enter a: 13
Enter b: 20
b is greater than a.

นี่เป็นตัวอย่างผลลัพธ์เมื่อใส่ค่า a เป็น 13 และ b เป็น 20 โปรแกรมจะทำงานในบล็อคของคำสั่ง ElseIf

Enter a: 2
Enter b: 2
a and b are equal.

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

คำสั่ง Select Case

ในภาษา Visual Basic ยังมีคำสั่งเลือกเงื่อนไขอีกแบบหนึ่งคือคำ Switch Case ที่ใช้คำสั่งเลือกให้โปรแกรมทำงานแบบตัวเลือกหลายเงือนไข มันมักจะใช้สำหรับค่าที่สามารถเปรียบเทียบโดยตรงได้ โดยมีรูปแบบการใช้งานดังนี้

Select Case Variable
Case Value1
statement
Case Value1
statement
...
Case Else
statement
End Select

การใช้คำสั่ง Select Case นั้น เราจะต้องส่งค่าตัวแปรเข้าไปในคำสั่ง Variable และในแต่ละ Case เป็นค่าคงที่สำหรับเปรียบเทียบ มันไม่สามารถใช้ตัวดำเนินการอื่นร่วมได้เหมือนคำสั่ง If คุณสามารถใช้เครื่องหมาย comma (,) ได้ถ้าหากมันมีหลายค่า และใช้คำสั่ง To ในกรณีที่เป็นค่าระหว่างช่วงที่กำหนด และสามารถใช้ Else สำหรับเงือนไขปริยาย

มาดูตัวอย่างการใช้คำสั่ง Select Case ในภาษา Visual Basic

Module SelectCase

Sub Main()

Dim number As Integer = 5
Select Case number
Case 1
Console.WriteLine("Equal to 1")
Case 2
Console.WriteLine("Equal to 2")
Case 3, 4, 5
Console.WriteLine("Equal to 3, 4 or 5")
Case 6 To 8
Console.WriteLine("Between 6 and 8")
Case Else
Console.WriteLine("Not between 1 and 8")
End Select

End Sub

End Module

ในตัวอย่างเป็นโปรแกรมในการตรวจสอบตัวเลขในตัวแปร number ว่าอยู่ในช่วงไหน เราส่งตัวแปรเข้าไปในคำสั่ง Select Case และโปรแกรมจะเปรียบเทียบกับแต่ละ Case ที่เรากำหนดขึ้น

Equal to 3, 4 or 5

และนี่เป็นผลลัพธ์ของโปรแกรม สำหรับการกำหนดค่าให้กับตัวแปร number เป็น 5 ซึ่งตรงกับ Case 3, 4, 5

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

Module GradeEvaluation

Sub Main()

Dim course As Integer
Dim score As Integer

Console.WriteLine("Grade Evaluation Program")
Console.WriteLine("Enter 1 or 2 to select course")
Console.WriteLine("1 = Discrete Mathematics")
Console.WriteLine("2 = Software Engineering")

Console.Write("Enter your choice: ")
course = CType(Console.ReadLine(), Integer)

Select Case course
Case 1
Console.WriteLine("You selected Discrete Mathematics")
Case 2
Console.WriteLine("You selected Software Engineering")
Case Else
Console.WriteLine("You have selected an invalid choice")
End Select

If course >= 1 Or course <= 3 Then

Console.Write("Enter your score (0 - 100): ")
score = CType(Console.ReadLine(), Integer)

If score >= 80 And score <= 100 Then
Console.WriteLine("Your grade is A")
ElseIf score >= 70 And score < 80 Then
Console.WriteLine("Your grade is B")
ElseIf score >= 60 And score < 70 Then
Console.WriteLine("Your grade is C")
ElseIf score >= 50 And score < 60 Then
Console.WriteLine("Your grade is D")
ElseIf score >= 0 And score < 50 Then
Console.WriteLine("Your grade is F")
Else
Console.WriteLine("You have entered an invalid score")
End If

End If

End Sub

End Module

ในตัวอย่าง เป็นโปรแกรมคำนวณเกรดในภาษา Visual Basic เราได้ให้ผู้กรอกค่าที่ต้องการและคะแนน เราได้ใช้ทั้งคำสั่ง Select Case และคำสั่ง If รวมกัน ในส่วนของคำสั่ง Select Case เราได้ทำการตรวจสอบค่าในตัวแปร course ว่าตรงกับเงื่อนไขในวิชาที่กำหนดหรือไม่ ถ้าตรงกันเราแสดงวิชาที่เลือก และถ้าไม่ตรงจะบอกว่าคุณเลือกวิชาไม่ถูกต้อง

If course >= 1 Or course <= 3 Then
....
If score >= 80 And score <= 100 Then
...

ต่อมาเราจะทำการรับค่าของคะแนนผู้ใช้ โดยใช้คำสั่ง If ในการตรวจสอบถ้าหากการเลือกวิชาถูกต้องใน course >= 1 Or course <= 3 คุณจะเห็นว่าเราได้ใช้คำสั่ง If ซ้อนกันได้ และบล็อค If ย่อย เราได้ทำการเปรียบเทียบเกรดในระดับคะแนนต่างๆ และแสดงผลลัพธ์ให้ผู้ใช้ทราบ

Grade Evaluation Program
Enter 1 or 2 to select course
1 = Discrete Mathematics
2 = Software Engineering
Enter your choice: 2
You selected Software Engineering
Enter your score (0 - 100): 74
Your grade is B

และนี่เป็นผลลัพธ์ของโปรแกรมเมื่อเราใส่ค่า choice เป็น 2 และใส่ค่า score เป็น 74

ในบทนี้ คุณได้เรียนรู้เกี่ยวกับคำสั่งควบคุมแบบเลือกประเภทต่างๆ ในภาษา Visual Basic ไม่ว่าจะเป็นคำสั่ง If Else ElseIf และ Select Case และนอกจากนี้ คุณยังเห็นวิธีนำไปประยุกต์ใช้ในการเขียนโปรแกรมด้วยตัวอย่างของโปรแกรมคำนวณเกรด ในบทต่อไปคุณจะได้เรียนคำสั่งควบคุมโปรแกรมแบบวนซ้ำ


บทความเกี่ยวกับ คำสั่งเลือกเงื่อนไข

คำสั่งควบคุม ในภาษา C

ในบทก่อนหน้า คุณได้เรียนรู้พื้นฐานของภาษา C ไปแล้ว ในบทนี้คุณจะได้เรียนรู้เกี่ยวกับการควบคุมการทำงานของโปรแกรมโดยใช้คำสั่งควบคุม ในภาษา C มีคำสั่งควบคุมหลายประเ...

คำสั่งเลือกเงื่อนไข ในภาษา C#

ในเรียนนี้ คุณจะได้เรียนรู้เกี่ยวกับคำสั่งเงื่อนไขในภาษา C#คำสั่งเงื่อนไข (selection statement) เป็นคำสั่งที่ให้คุณสามารถควบคุมโปรแกรมให้ทำงานตามต้องการ ตามเงื่...

คำสั่งเลือกเงื่อนไข ในภาษา Java

ในบทนี้ คุณจะได้เรียนรู้วิธีการควบคุมการทำงานของโปรแกรมโดยคำสั่งเงื่อนไขในภาษา Java เพื่อควบคุมโปรแกรมให้ทำงานตามที่ต้องการ โดยคำสั่งเงื่อนไขในภาษา Java ที่คุณจ...

คำสั่งเลือกเงื่อนไข ในภาษา Python

ในบทนี้ คุณจะได้เรียนเกี่ยวกับคำสั่งเลือกเงื่อนไขในภาษา Python เราจะพูดถึงการควบคุมการทำงานโปรแกรมด้วยคำสั่ง if, if else และ elif เพื่อให้โปรแกรมสามารถทำงานซับซ...

คำสั่งควบคุม ในภาษา C++

ในบทก่อนหน้า คุณได้เรียนพื้นฐานของภาษา C++ ไปแล้ว ในบทนี้ คุณจะได้เรียนเกี่ยวกับการควบคุมโปรแกรมโดยการใช้คำสั่งควบคุม อย่างเช่น if, if else, switch, for, while...