บทที่ 2 ตอน 4 การบังคับให้ออกจากฟังก์ชั่นโดยใช้คำสั่ง Exit Function
การบังคับให้ออกจากฟังก์ชั่นโดยใช้คำสั่ง
Exit Function
|1| Function testFunction() As String
|2| MsgBox("456")
|3| Exit Function
|4| MsgBox("789")
|5| Return "123"
|6|
End Function
จากโค้ดสังเกตว่าเมื่อเรียกใช้เมธอด testFunction()
จะมีการแสดงผลของกล่องข้อความเพียงครั้งเดียวเนื่อจากในบรรทัดที่ 3
มีการบังคับให้ออกจากเมธอดโดยคำสั่ง Exit Function
การบังคับให้ออกจากซับรูทีนโดยใช้คำสั่ง
Exit Sub
|1| Sub testFunction()
|2| MsgBox("456")
|3| Exit Sub
|4| MsgBox("789")
|5|
End Sub
จากโค้ดของซับรูทีนเช่นเดียวกันกับฟังก์ชั่นเมื่อระบบทำงานไปพบกับคำสั่ง
Exit Sub ในบรรทัดที่ 3 จะหลุดหรือออกจากซับรูทีนทันทีโดยมีการแสดงผลของกล่องข้อความเพียงครั้งเดียวคือ
456
การส่งค่าอาร์กิวเมนต์ชนิดวัตถุ
หรือ Object
นอกจากการส่งค่าที่เป็นชนิดข้อมูลพื้นฐาน (integer string long …) ผ่านค่าอาร์กิวเมนต์ไปยังค่าตัวแปรพารามิเตอร์ ภายในฟังก์ชั่นได้แล้วยังสามารถส่งค่าข้อมูลชนิดวัตถุเข้าไปในเมธอดได้
(อะไรก็ตามที่เป็นวัตถุ ก็ส่งเข้าไปได้) ซึ่งข้อมูลชนิดวัตถุที่ส่งเข้าไปนั้นยังคงมี
ค่าคุณสมบัติ และจำนวนเมธอดอยู่แต่มีข้อสังเกตคือ ตัวแปรพารามิเตอร์ที่มารับค่านั้นจะต้องเป็นชนิดข้อมูลเดียวกันกับอาร์กิวเมนต์ที่ส่งค่าเข้ามา
มิฉะนั้นอาจจะเกิดข้อผิดพลาดในการรันโปรแกรมได้
ตัวอย่างต่อไปนี้คือเมธอด setButton() โดยมีการส่งค่าอาร์กิวเมนต์ชนิด
button ผ่านตัวแปรพารามิเตอร์
ดังนั้นตัวแปรพารามิเตอร์จะต้องประกาศเป็นตัวแปรชนิด Button เช่นกันเพื่อจะได้สอดคล้องกับอาร์กิวเมนต์ที่ส่งเข้ามา
|1| Public Class Form1
|2|
|3| Sub setButton(ByVal prmBtn As Button)
|4| prmBtn.BackColor = Color.Red
|5| prmBtn.ForeColor = Color.Blue
|6| prmBtn.Text = "แสดงข้อความ"
|7| prmBtn.Font = New
Font("Tahoma", 16, FontStyle.Bold)
|8| End Sub
|9|
|10|
|11| Private Sub Button1_Click()
Handles Button1.Click
|12| setButton(Button1)
|13| End Sub
|14|
|15| End Class
โปรดสังเกตในบรรทัดที่ 12 เมื่อมีการเรียกใช้เมธอด setButton()ก็จะส่งออฟเจ็กต์ Button1 เข้าไปในเมธอด โดยมีบรรทัดที่ 3 ในการรับค่า Button1 ผ่านตัวแปรพารามิเตอร์ prmBtn การเขียนเมธอด setButton() สามารถเขียนโค้ดคำสั่งให้กระชับขึ้นโดยการใช้คำสั่ง
With มาช่วยจัดระบบดังนี้
|1| Sub setbutton(ByVal prmBtn As Button)
|2| With prmBtn
|3| .BackColor = Color.Red
|4| .ForeColor = Color.Blue
|5| .Text = "แสดงข้อความ"
|6| .Font = New
Font("Tahoma", 16, FontStyle.Bold)
|7| End With
|8| End Sub
แนวทางในการนำเมธอดมาช่วยในการจัดระเบียบของกลุ่มโค้ดสั่ง
ในส่วนแรกของโค้ดโปรแกรมในแต่ละตัวอย่างนั้นจะขอแสดงให้เป็นกว่าการเขียนโปรแกรมที่มีการเขียนโค้ด
โดยที่ไม่ได้นำเมธอดมาช่วยจะก่อให้เกิดความซ้ำซ้อนและยากลำบากในการแก้ไขโค้ดเมื่อความต้องการของผู้ใช้เปลี่ยนไปหรือเงื่อนไขเปลี่ยนแปลง ในส่วนที่สองของตัวอย่าง จะมีแก้ไขโค้ดคำสั่งโดยการนำเมธอดจัดระเบียบคำสั่งที่มีลักษณะพฤติกรรมการทำงานที่คล้ายกัน
ซึ่งแต่ละเมธอดอาจจะมีการกำหนดค่าที่แตกต่างกัน
ตัวอย่างที่ 1 โปแกรมคำนวณสูตรการคูณ Multiply Program
โปรแกรมคำนวณสูตรการคูณนี้จะมีขั้นตอนในการทำงานโดยเริ่มจากการโหลดฟอร์มครั้งแรก
(Form1_Load) คำสั่งจะทำการวนรอบค่าจาก 1 ถึง 100
เข้าไปยัง ComboBox 1 ถึง 4 และกำหนดการแสดงผลค่าเริ่มต้นของ
Combobox คือ 12 จากนั้นเมื่อผู้ใช้คลิกปุ่มคำนวณ
จะทำการคำนวณสูตรการคูณโดยจะวนรอบจำนวน 12 รอบ จากนั้นจะแสดงผลไปยัง ListBox1 โดยมีการกำหนดค่าสีในแต่ละปุ่มคำนวณโดยสีที่แตกต่างกัน
ซึ่งในส่วนแรกจะมีการออกแบบและเขียนโค้ดคำสั่งดังนี้
ส่วนที่ 1 เขียนโปรแกรมโดยไม่ใช้เมธอด
(1) ขั้นตอนในการออกแบบหน้าจอ ให้ออกแบบหน้าจอดังภาพโดยในคุณสมบัติ
Name ให้ตั้งชื่อตัวควบคุมทั้งหมด ดังภาพ
(1)
จากนั้นให้ทดลองเขียนโค้ดคำสั่งในเหตุการณ์ที่จะเกิดขึ้น
คือ Form1_Load Button1_Click Button2_Click Button3_Click Button4_Click
|1| Public Class Form1
|2|
|3| Private Sub Form1_Load()
Handles MyBase.Load
|4| Dim i As Int16
|5|
|6| For i = 1 To 100
|7| ComboBox1.Items.Add(i)
|8| Next
|9| ComboBox1.Text
= "12"
|10|
|11| For i = 1 To 100
|12| ComboBox2.Items.Add(i)
|13| Next
|14| ComboBox2.Text
= "12"
|15|
|16| For i = 1 To 100
|17| ComboBox3.Items.Add(i)
|18| Next
|19| ComboBox3.Text
= "12"
|20|
|21| For i = 1 To 100
|22| ComboBox4.Items.Add(i)
|23| Next
|24| ComboBox4.Text
= "12"
|25|
|26| End Sub
|27|
|28| Private Sub Button1_Click()
Handles Button1.Click
|29| Dim i As Int16
|30| Dim Lp As Int16 = Val(ComboBox1.Text)
|31| Dim num As Int16 = 1
|32|
|33| ListBox1.Items.Clear()
|34| For i = 1 To
Lp
|35| ListBox1.Items.Add(num
& " : " & i & " = " & i * Lp)
|36| Next
|37| ListBox1.ForeColor
= Color.Red
|38| End Sub
|39|
|40| Private Sub Button2_Click()
Handles Button2.Click
|41| Dim i As Int16
|42| Dim Lp As Int16 = Val(ComboBox2.Text)
|43| Dim num As Int16 = 2
|44|
|45| ListBox1.Items.Clear()
|46| For i = 1 To Lp
|47| ListBox1.Items.Add(num
& " : " & i & " = " & i * Lp)
|48| Next
|49| ListBox1.ForeColor
= Color.Green
|50| End Sub
|51|
|52| Private Sub Button3_Click()
Handles Button3.Click
|53| Dim i As Int16
|54| Dim Lp As Int16 = Val(ComboBox3.Text)
|55| Dim num As Int16 = 3
|56|
|57| ListBox1.Items.Clear()
|58| For i = 1 To
Lp
|59| ListBox1.Items.Add(num
& " : " & i & " = " & i * Lp)
|60| Next
|61| ListBox1.ForeColor
= Color.Blue
|62| End Sub
|63|
|64| Private Sub Button4_Click()
Handles Button4.Click
|65| Dim i As Int16
|66| Dim Lp As Int16 = Val(ComboBox4.Text)
|67| Dim num As Int16 = 4
|68|
|69| ListBox1.Items.Clear()
|70| For i = 1 To
Lp
|71| ListBox1.Items.Add(num
& " : " & i & " = " & i * Lp)
|72| Next
|73| ListBox1.ForeColor
= Color.Red
|74| End Sub
|75| End Class
(3) รันโปรแกรมและทดลองคลิกปุ่มคำนวณไปทีละปุ่ม
โดยสังเกตการแสดงผลใน ListBox1
ส่วนที่ 2 เขียนโปรแกรมสูตรการคูณโดยใช้เมธอดมาช่วยจัดระเบียบ
ในส่วนที่ 2 นี้ให้ออกแบบหน้าฟอร์มและตั้งชื่อให้กับตัวควบคุมต่างๆ
เหมือนกับส่วนที่ 1
เพียงแต่การเขียนโค้ดคำสั่งจะต้องเขียนขึ้นใหม่
การวิเคราะห์โจทย์นั้นเราต้องพิจารณาส่วนของโค้ดคำสั่งที่มีพฤติกรรมที่คล้ายกัน
โดยสามารถนำชุดคำสั่งมาสร้างเป็นเมธอดได้ โดยการออกแบบเมธอดจะต้องสร้างเมธอดที่อยู่ระดับล่างสุด
ไปหาระดับบนสุด ซึ่งจะเกี่ยวเนื่องกับการเรียกส่งผ่านค่า โปรดสังเกตเส้นลูกศรของการเชื่อมโยงในแต่ละเมธอดซึ่งจะแสดงถึงลำดับขั้นตอนในการทำงานของโปรแกรมสูตรการคูณ
ความคิดเห็น
แสดงความคิดเห็น