Function Procedures

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

การใช้ฟังก์ชันและโพซีเยอร์นั้นมีประโยชน์มากสำหรับการเขียนโปรแกรม มันเป็นการนำโค้ดเดิมกลับมาใช้ใหม่ การปกปิดข้อมูล และช่วยให้เราสามารถแบ่งโค้ดออกเป็นส่วนย่อยๆ รวมทั้งช่วยให้การจัดการและแก้ไขโค้ดได้ง่าย

การสร้าง Procedures

โพซีเยอร์ คือฟังก์ชันที่ไม่มีการส่งค่ากลับมายังส่วนที่เรียกใช้ ในการประกาศโพซีเยอร์ในภาษา Visual Basic เราใช้คำสั่ง Sub และสิ้นสุดบล็อคของโพซีเยอร์ด้วยคำสั่ง End Sub ภายในบล็อคของคำสั่งประกอบด้วยคำสั่งของโปรแกรมที่เราต้องการให้ทำงาน

Module ProceduresExample

Sub Main()

ShowMessage()

End Sub

Sub ShowMessage()
Console.WriteLine("Hello World!")
End Sub

End Module

ในตัวอย่าง เราได้สร้างโพซีเยอร์ ShowMessage() โค้ดภายในบล็อคของโพซีเยอร์นั้นเป็นส่วนการทำงานของมัน ซึ่งจะแสดงข้อความออทางหน้าจอ

ShowMessage()

ภายในฟังก์ชัน Main() เราได้เรียกใช้โพซีเยอร์ด้วยคำสั่ง ShowMessage() คุณจะสังเกตว่าทั้งสองนั้นเป็นโพซีเยอร์เช่นเดียวกัน

Hello World!

และนี่เป็นผลลัพธ์ของโปรแกรมในการเรียกใช้โพซีเยอร์

Info: ส่วนมากเรามักจะเรียกทั้งฟังก์ชันและโพซีเยอร์ว่าฟังก์ชัน เพื่อความรวดเร็วและเข้าใจง่ายในการเขียนโปรแกรม

การสร้าง Function

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

Module FunctionExample

Sub Main()

Dim name As String

Console.Write("Enter your name: ")
name = GetName()

Console.WriteLine("Hello {0}", name)

End Sub

Function GetName() As String
Dim s As String = Console.ReadLine()
Return s
End Function

End Module

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

Function GetName() As String
Dim s As String = Console.ReadLine()
Return s
End Function

นี่เป็นส่วนในการประกาศฟังก์ชันที่มีชื่อว่า GetName() โดยการประกาศฟังก์ชันนั้นจะใช้คำสั่ง Function และสิ้นสุดบล็อคของฟังก์ชันด้วย End Function สำหรับฟังก์ชันนั้นจะมีการส่งค่ากลับ เราต้องกำหนดว่าจะส่งค่ากลับเป็นข้อมูลแบบไหน คำสั่ง As String หลังจากชื่อของฟังก์ชัน บอกว่าฟังก์ชันนี้จะส่งค่ากลับเป็น String และเราใช้คำสั่ง Return สำหรับส่งค่ากลับไป

name = GetName()

ในฟังก์ชัน Main() เราเรียกใช้ฟังก์ชันเหมือนกับโพซีเยอร์ แต่สำหรับฟังก์ชันจะต้องนำตัวแปรมารับค่าที่ส่งกลับมาจากฟังก์ชัน ซึ่งต้องเป็นตัวแปรประเภทเดียวกันกับที่เรากำหนดไว้ในการส่งค่ากลับของฟังก์ชัน

Enter your name: Daniel
Hello Daniel

นี่เป็นผลลัพธ์ของโปรแกรม เมื่อกรอกชื่อเป็น Daniel ซึ่งเป็นค่าที่ส่งกลับมาจากฟังก์ชันและเรานำมาแสดงผลออกทางหน้าจอ

พารามิเตอร์และอากิวเมนต์ของฟังก์ชัน

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

Module FunctionParameterExample

Sub Main()

Hello("Sam")

Dim x, y As Integer
x = 5
y = 3
Console.WriteLine("5 + 3 = {0}", Sum(x, y))
Console.WriteLine("10 + 23 = {0}", Sum(10, 23))

End Sub

Sub Hello(ByVal name As String)
Console.WriteLine("Hello " & name)
End Sub

Function Sum(ByVal a As Integer, ByVal b As Integer) As Integer
Dim c As Integer = a + b
Return c
End Function

End Module

ในตัวอย่าง เราได้สร้างโพซีเยอร์ Hello() สำหรับแสดงข้อความทักทาย และฟังก์ชัน Sum() ในการหาผลรวมของตัวเลขและส่งค่ากลับ

Sub Hello(ByVal name As String)
Console.WriteLine("Hello " & name)
End Sub

นี่เป็นการสร้างโพซีเยอร์ Hello() โดยมีพารามิเตอร์หนึ่งตัว เราใช้คำสั่ง ByVal ตามด้วยชื่อและประเภทข้อมูลสำหรับใช้ในโพซีเยอร์ ถ้าหากมีพารามิเตอร์มากกว่า 1 ตัว คุณสามารถคั่นด้วยเครื่องหมาย comma ได้

Hello("Sam")

นี่เป็นการเรียกใช้งานโพซีเยอร์ที่สร้างขึ้น เราจะต้องส่งตัวแปรเข้าไปภายในบ () ให้สอดคล้องกับพารามิเตอร์ของโพซีเยอร์ ส่งค่าไปให้กับพารามิเตอร์เราเรียกว่าอากิวเมนต์

Function Sum(ByVal a As Integer, ByVal b As Integer) As Integer
Dim c As Integer = a + b
Return c
End Function

ตัวไปเราสร้างฟังก์ชัน Sum() ที่มีพารามิเตอร์สองตัวเป็น Integer โดยฟังก์ชันจะนำเลขทั้งสองบวกกันและส่งค่ากลับ เราได้เรียกใช้ฟังก์ชันในคำสั่ง Sum(x, y) และ Sum(10, 23) ซึ่งส่งอากิวเมนต์ Integer สองตัวเข้าไปยังฟังก์ชัน

Hello Sam
5 + 3 = 8
10 + 23 = 33

นี่เป็นผลลัพธ์ของโปรแกรม การใช้งานฟังก์ชันพารามิเตอร์

การใช้งานฟังก์ชันกับอาเรย์

คุณสามารถส่งอาเรย์เข้าไปในฟังก์ชันได้เช่นเดียวกันกับตัวแปร และการส่งค่าอาเรย์กลับด้วยคำสั่ง Return ต่อไปมาดูตัวอย่างการใช้งานอาเรย์กับฟังก์ชัน

Module FunctionWithArray

Sub Main()

Dim numbers = New Integer() {1, 2, 3, 5, 8, 9, 10, 13, 15, 17}
Dim r() As Boolean = IsPrimeArray(numbers)

Console.WriteLine("Are these numbers prime?")
For i As Integer = 0 To numbers.Length - 1
Console.WriteLine("{0} = {1}", numbers(i), r(i))
Next

End Sub

Function IsPrimeArray(ByVal numbers() As Integer) As Boolean()
Dim result(numbers.Length) As Boolean

For i As Integer = 0 To numbers.Length - 1
result(i) = IsPrime(numbers(i))
Next
Return result
End Function

Function IsPrime(ByVal number As Integer) As Boolean
If number = 1 Then
Return False
End If

For i As Integer = 2 To number - 1
If number Mod i = 0 And i <> number Then
Return False
End If
Next
Return True
End Function

End Module

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

Function IsPrimeArray(ByVal numbers() As Integer) As Boolean()
...

ในการประกาศฟังก์ชันสำหรับการรับค่าพารามิเตอร์แบบอารย์นั้น เราจะใส่เครื่องหมาย () หลังจากชื่อตัวแปร เช่นเดียวกันกับในตอนที่เราประกาศอาเรย์ คำสั่ง ByVal numbers() As Integer คือการประกาศพารามิเตอร์สำหรับรัยค่าอาเรย์ของ Integer ที่จะส่งเข้ามา

เช่นเดียวกันสำหรับการส่งค่ากลับ เราประกาศรูปแบบของฟังก์ชันเป็น As Boolean() นั่นหมายความว่าฟังก์ชันนี้จะส่งค่ากลับเป็นอาเรย์ของ Boolean ที่ผลลัพธ์ของตัวเลขแต่ละตัวว่าเป็นจำนวนเฉพาะหรือไม่

Dim r() As Boolean = IsPrimeArray(numbers)

นี่เป็นคำสั่งในการเรียกใช้ฟังก์ชัน โดยการส่งอาเรย์ numbers เข้าไป และในขณะเดียวกันตัวแปรอาเรย์ r กับรับค่าที่ส่งกลับมาจากฟังก์ชัน

Function IsPrime(ByVal number As Integer) As Boolean
...

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

Are these numbers prime?
1 = False
2 = True
3 = True
5 = True
8 = False
9 = False
10 = False
13 = True
15 = False
17 = True

นี่เป็นผลลัพธ์ของโปรแกรมในการใช้งานอาเรย์กับฟังก์ชัน

ในบทนี้ คุณได้เรียนรู้เกี่ยวกับการสร้างและใช้งานฟังก์ชันและโพซีเยอร์ และรู้ในความแตกต่างของทั้งสองแบบนี้ และการใช้งานอาเรย์กับฟังก์ชัน


บทความเกี่ยวกับ Function Procedures

String ในภาษา PHP

String คือประเภทข้อมูลประเภทข้อความหรือการนำตัวอักษรหลายๆ ตัวมาต่อกันหรือเรียกว่าอาเรย์ของตัวอักษร โดยความยาวของ String นั้นสามารถเปลี่ยนแปลงได้ตามค่าที่กำหนดให...

ฟังก์ชัน ในภาษา C

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

ฟังก์ชัน ในภาษา C++

ฟังก์ชันเป็นส่วนหรือกลุ่มของคำสั่งเพื่อทำงานบางอย่าง แนวคิดของฟังก์ชันคือการรวบรวมโค้ดที่ใช้บ่อยๆ และซ้ำๆ กลับมาใช้ใหม่เมื่อคุณสร้างฟังก์ชันมันสามารถถูกเรียกใช้...

อาเรย์ฟังก์ชัน ในภาษา PHP

ในภาษา PHP มีฟังก์ชันอำนวยความสะดวกในการจัดการอาเรย์ ฟังก์ชันเหล่านี้เป็น Built-in function พื้นฐานที่จำเป็นในการเขียนโปรแกรม มีฟังก์ชันเกี่ยวกับอาเรย์เป็นจำนวน...

ฟังก์ชัน ในภาษา PHP

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับการสร้างและการใช้งานฟังก์ชันในภาษา PHP คุณจะเข้าใจแนวคิดและวิธีการใช้งานของฟังก์ชันซึ่งจะเป็นฟังก์ชันที่สร้างจากผู้ใช้เป็นหลัก ...