การใช้งานค่าคงที่กับอาเรย์
ต่อไปเป็นตัวอย่างในการใช้งานค่าคงที่กับอาเรย์ โดยจะมีค่าคงที่สำหรับการกำหนดขนาดของอาเรย์ และใส่ชื่อและคะแนนของผู้เล่นลงไปในอาเรย์ และโปรแกรมจะบอกผู้เล่นที่ชนะ ซึ่งคือผู้ที่ได้รับคะแนนสูงสุด
using System;
class Constant
{
static void Main(string[] args)
{
const int SIZE = 5;
string[] names = new string[SIZE];
int[] scores = new int[SIZE];
Console.WriteLine(“Enter name and score of {0} players”, SIZE);
for (int i = 0; i < SIZE; i++)
{
Console.Write(“Player {0} name: “, i + 1);
names[i] = Console.ReadLine();
Console.Write(“Player {0} score: “, i + 1);
scores[i] = Int32.Parse(Console.ReadLine());
}
int maxIndex= 0;
for (int i = 0; i < SIZE; i++)
{
if (scores[i] > scores[maxIndex])
{
maxIndex = i;
}
}
Console.WriteLine(“{0} is the winner with score {1}”,
names[maxIndex], scores[maxIndex]);
}
}
ในตัวอย่าง ได้มีการประกาศค่าคงที่ SIZE สำหรับกำหนดขนาดของอาเรย์ที่จะใช้เก็บชื่อและคะแนน ในโปรแกรมได้มีการสร้างอาเรย์ names และ scores ที่มีขนาดตามที่ได้กำหนดในค่าคงที่ SIZE คือ 5 นั่นหมายความว่า มีการสร้างอาเรย์เหล่านี้มาสำหรับเก็บชื่อและคะแนนของผู้เล่นจำนวน 5 คน
for (int i = 0; i < SIZE; i++)
{
Console.Write(“Player {0} name: “, i + 1);
names[i] = Console.ReadLine();
Console.Write(“Player {0} score: “, i + 1);
scores[i] = Int32.Parse(Console.ReadLine());
}
ต่อมาเราใช้คำสั่ง For loop ในการวนอ่านชื่อและคะแนนลงไปในอาเรย์ทั้งสอง โดยการวนนั้นจะวนตามจำนวนค่าคงที่ SIZE ซึ่งใช้ตัวแปร i เป็น index ของอาเรย์
int maxIndex= 0;
for (int i = 0; i < SIZE; i++)
{
if (scores[i] > scores[maxIndex])
{
maxIndex = i;
}
}
Loop ต่อมาเป็นการหาคนที่ได้คะแนนมากที่สุด เพราะว่าเรามีอาเรย์สองตัวแปร ดังนั้นเราจะหาว่า Index ไหนของอาเรย์ที่จะมีคะแนนมากที่สุดใน scores ซึ่งก็จะเป็น Index เดียวกันกับชื่อในอาเรย์ names เราได้ใช้คำสั่ง For loop ในการวนซ้ำสำหรับเปรียบเทียบเพื่อหาค่าสูงสุด และในตอนท้ายเราจะได้ Index ของอาเรย์ที่มีค่าสูงสุด
Enter name and score of 5 players
Player 1 name: Marcus
Player 1 score: 52
Player 2 name: Mateo
Player 2 score: 34
Player 3 name: Danny
Player 3 score: 80
Player 4 name: Emily
Player 4 score: 61
Player 5 name: Kate
Player 5 score: 26
Danny is the winner with score 80
ผลลัพธ์การทำงานของโปรแกรม โดยมีการกรอกชื่อและคะแนนของผู้เล่นทั้ง 5 คนลงไป และโปรแกรมได้มีการคำนวณผู้ชนะที่มีคะแนนมากที่สุดคือ Danny ซึ่งมีคะแนน 80 คะแนน
จากในทั้งสองตัวอย่างที่ผ่านมา คุณจะเห็นได้ว่าเราสามารถใช้ค่าคงที่ในการช่วยให้การเขียนโปรแกรมมีประสิทธิภาพมากขึ้น และในตัวอย่างที่สอง เราใช้ค่าคงที่ SIZE สำหรับแทนด้วย 5 นั่นหมายความว่ามันจะเป็นเรื่องง่ายถ้าหากเราต้องการที่จะประกาศอาเรย์ที่มีขนาดเป็น 10 หรือ 20 เราเพียงแค่เปลี่ยนจากค่าคงที่เท่านั้น ดังนั้นมันจึงช่วยลดความผิดพลาดและความสับสนในการเขียนโปรแกรมได้เป็นอย่างมาก