ค่าคงที่
ค่าคงที่ (constants) เป็นตัวแปรหรือประเภทของข้อมูลที่ไม่สามารถเปลี่ยนแปลงค่าได้ในภายหลัง นั่นหมายความว่ามันจะต้องกำหนดค่าก่อนการทำงานของคอมไพเลอร์เสมอ
ค่าคงที่ที่เราใช้กันบ่อยๆ นั่นก็คือ literal ซึ่งมันสามารถแบ่งแยกออกเป็น integer, floating point number, character, string และ boolean เป็นต้น อย่างไรก็ตามค่าคงที่ก็คือค่าใดๆ ที่สามารถกำหนดให้กับตัวแปรได้นั่นเอง
5
7.2F
"This is string"
ในตัวอย่าง เป็น literal ของข้อมูลประเภทต่างๆ ในภาษา Visual Basic คือ integer, floating point number และ string ตามลำดับ ซึ่งเนื้อหาของ literal นั้นเหมือนกันกับประเภทของข้อมูลในบทก่อนหน้า
การประกาศค่าคงที่
ในภาษา Visual Basic เราสามารถประกาศค่าคงที่เพื่อนำมาใช้ในโปรแกรมของเรา เหมือนที่เราได้บอกไปก่อนหน้า ค่าคงที่เป็นตัวแปรประเภท fixed ค่า ดังนั้นมันไม่สามารถเปลี่ยนแปลงค่าได้ในภายหลังในโปรแกรม นี่เป็นรูปแบบการประกาศค่าคงที่ในภาษา Visual Basic
Const constName As typeName = constValue;
ในการประกาศตัวแปรในภาษา Visual Basic นั้นใช้คำสั่ง Const
ตามด้วยชื่อของค่าคงที่ และตามด้วยประเภทของข้อมูล และต้องกำหนดค่าของค่าคงที่เสมอ
Const SIZE As Integer = 10
Const PI As Double = 3.14159
Const NAME As String = "Marcus"
ในตัวอย่าง เราได้ประกาศค่าคงที่สามตัว SIZE
มีประเภทข้อมูลเป็นแบบ Integer PI
มีประเภทข้อมูลเป็นแบบ Double และ NAME
มีประเภทข้อมูลเป็นแบบ String ในการตั้งชื่อให้กับค่าคงที่ เรามักจะใช้ตัวพิมพ์ใหญ่ทั้งหมด เพื่อที่จะได้แยกแยะได้ง่ายจากตัวแปรปกติ ส่วนกฏการตั้งชื่อนั้นเหมือนกับตัวแปร ต่อไปมาดูตัวอย่างการใช้งานค่าคงที่
Module Module1
Sub Main()
Const PI As Double = 3.14159
Dim r As Integer = 3
Console.WriteLine("Value of PI = {0}", PI)
Console.WriteLine()
Console.WriteLine("Circle radius = {0}", r)
Console.WriteLine("Has area = {0}", r * r * PI)
Console.WriteLine("Has circumference = {0}", 2 * r * PI)
r = 5
Console.WriteLine()
Console.WriteLine("Circle radius = {0}", r)
Console.WriteLine("Has area = {0}", r * r * PI)
Console.WriteLine("Has circumference = {0}", 2 * r * PI)
End Sub
End Module
ในตัวอย่าง เป็นโปรแกรมในการคำนวณหาพื้นที่และเส้นรอบวงของโปรแกรมจากรัศมีของมัน เราได้ประกาศค่าคงที่ PI
ซึ่งมีประเภทข้อมูลเป็น double เพื่อเก็บค่าของ Pi ซึ่งเป็นค่าคงที่ทางคณิตศาสตร์
Const PI As Double = 3.14159
หลังจากนั้น เราสามารถนำตัวแปรนี้ไปคำนวณหาพื้นที่และเส้นรอบวงของวงกลม คุณเห็นว่าเราใช้ PI
แทนค่าของ 3.14159
ที่เป็นค่าของ PI ประโยชน์ของค่าคงที่ก็คือทำให้เราสามารถใช้ค่าเดิมซ้ำๆ ถ้าหากเราต้องการเปลี่ยนค่า Pi ใหม่ก็สามารถกำหนดมันได้ใหม่ในตอนที่ประกาศ และนอกจากนี้มันยังทำให้เราไม่สับสนกับตัวแปรอื่นๆ เช่น ตัวแปร r
ซึ่งเป็นตัวแปรปกติ
Value of PI = 3.14159
Circle radius = 3
Has area = 28.27431
Has circumference = 18.84954
Circle radius = 5
Has area = 78.53975
Has circumference = 31.4159
นี่เป็นผลลัพธ์ของโปรแกรมของการใช้ค่าคงที่ในภาษา Visual Basic
ถ้าคุณไม่ได้ค่าคงที่ คุณอาจจะเขียนโปรแกรมได้ยากหรือลำบากขึ้น ดังตัวอย่างข้างล่างนี้
Console.WriteLine("Has area = {0}", r * r * 3.14159)
Console.WriteLine("Has circumference = {0}", 2 * r * 3.14159)
จะเห็นว่าคุณต้องคัดลอกค่านั้นไปไว้ทุกที่ที่จะใช้งาน ซึ่งอาจจะทำให้เกิดความผิดพลาดได้ หรือในกรณีที่ต้องการเปลี่ยนเป็นค่าใหม่จะต้องเปลี่ยนมันทั้งหมด ซึ่งเป็นวิธีการเขียนโปรแกรมที่ไม่ดี
ต่อไปมาดูตัวอย่างเพิ่มเติมสำหรับการใช้งานค่าคงที่ในภาษา Visual Basic เราจะประกาศค่าคงเพื่อที่จะกำหนดขนาดให้กับอาเรย์ และเก็บข้อมูลเพื่อนำมาหาค่าสถิติทางคณิตศาสตร์
Module Module1
Sub Main()
Const MAX_SIZE As Integer = 10
Dim number(MAX_SIZE - 1) As Integer
For i As Integer = 0 To MAX_SIZE - 1
Console.Write("Enter number {0}: ", i + 1)
number(i) = Int32.Parse(Console.ReadLine())
Next
Console.WriteLine("You have entered {0} numbers", MAX_SIZE)
Console.WriteLine("Min = {0}", number.Min)
Console.WriteLine("Max = {0}", number.Max)
Console.WriteLine("Sum = {0}", number.Sum)
Console.WriteLine("Average = {0}", number.Sum / MAX_SIZE)
End Sub
End Module
เป็นตัวอย่าง เป็นโปรแกรมในการรับค่าตัวเลขที่ได้กำหนดไว้ในค่าคงที่ MAX_SIZE
ซึ่งหมายความว่าเราจะประกาศอาเรย์ที่มีขนาดเป็น 10 ซึ่งเป็นค่าที่ได้กำหนดให้กับค่าคงที่ เพื่อเก็บตัวเลขจำนวน 10 ตัวลงไปในอาเรย์ดังกล่าว ในการประกาศอาเรย์ในภาษา Visual Basic นั้น Index ของอาเรย์จะเริ่มจาก 0 ถึง MAX_SIZE - 1 ซึ่งเป็นตำแหน่งของอาเรย์ตำแหน่งแรกและตำแหน่งสุดท้ายตามลำดับ คุณจะได้เรียนภายหลังในบทของอาเรย์
For i As Integer = 0 To MAX_SIZE - 1
Console.Write("Enter number {0}: ", i + 1)
number(i) = Int32.Parse(Console.ReadLine())
Next
หลังจากนั้นเราใช้คำสั่ง For loop ในการวนซ้ำเพื่ออ่านค่าจากตัวเลขเป็นจำนวน 10
ตัวลงไปในอาเรย์ หลังจากนั้นเราได้แสดง จำนวนตัวเลขทั้งหมดในอาเรย์ ค่าน้อยสุด ค่ามากสุด ผมรวม และค่าเฉลี่ยของตัวเลขในอาเรย์
Enter number 1: 34
Enter number 2: 12
Enter number 3: 32
Enter number 4: 16
Enter number 5: 20
Enter number 6: 50
Enter number 7: 8
Enter number 8: 43
Enter number 9: 96
Enter number 10: 62
You have entered 10 numbers
Min = 8
Max = 96
Sum = 373
Average = 37.3
นี่เป็นผลลัพธ์การทำงานของโปรแกรม ซึ่งโปรแกรมจะถามให้เราใส่ตัวเลขทั้ง 10 ตัว สิ่งที่สำคัญก็คือเราได้ใช้ค่าคงที่ในหลายที่ภายในโค้ด ดังนั้นถ้าหากคุณต้องการเปลี่ยนการรับค่าตัวเลขเป็น 20 ตัวคุณเพียงแค่กำหนดค่าใก้กับ MAX_SIZE
และโปรแกรมจะทำงานสำหรับตัวเลขจำนวน 20 ตัว
ในบทนี้ คุณได้เรียนรู้เกี่ยวกับค่าคงที่ในภาษา Visual Basic และประโยชน์ของการใช้งานค่าคงที่ในการเขียนโปรแกรม