ค่าคงที่

ค่าคงที่ (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 และประโยชน์ของการใช้งานค่าคงที่ในการเขียนโปรแกรม