2. ตัวอยางที่ 3.5 โปรแกรมตอไปนี้แสดงแตมคะแนนตามระดับคะแนน (A,B,C,D,F) ที่ปอนโดยผูใช
ระดับคะแนน (grade) แตมระดับคะแนน (grade point)
A 4.0
B 3.0
C 2.0
D 1.0
F 0.0
using System;
class GradePoint {
static void Main() {
string grade;
Console.Write("Please input your grade: ");
grade = Console.ReadLine();
switch (grade) {
case "A" : Console.WriteLine("Your point is 4.0."); break;
case "a" : Console.WriteLine("Your point is 4.0."); break;
case "B" : Console.WriteLine("Your point is 3.0."); break;
case "b" : Console.WriteLine("Your point is 3.0."); break;
case "C" : Console.WriteLine("Your point is 2.0."); break;
case "c" : Console.WriteLine("Your point is 2.0."); break;
case "D" : Console.WriteLine("Your point is 1.0."); break;
case "d" : Console.WriteLine("Your point is 1.0."); break;
case "F" : Console.WriteLine("Your point is 0.0."); break;
case "f" : Console.WriteLine("Your point is 0.0."); break;
default: Console.WriteLine("Invalid input!!"); break;
}
}
}
ตัวอยางผลการทํางาน
Please input your grade: A
Your point is 4.0.
Please input your grade: B
Your point is 3.0.
Please input your grade: e
Invalid input!!
60 สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี
3. แมวาโปรแกรมขางตนจะทํางานไดอยางถูกตอง โปรแกรมดังกลาวยังคอนขางยาวอีกทั้งโปรแกรม
ยังมีคําสั่งที่ถูกใชซํ้า ๆ กันอยูหลายแหงเนื่องจากการปอนระดับคะแนนดวยตัวอักษรตัวใหญและตัวเล็กจะ
ใหผลเหมือนกัน ภาษา C# อนุญาตใหคาสั่ง case หลาย ๆ คําสั่งควบคุมชุดคําสั่งรวมกันไดดังตัวอยาง
ํ
using System;
class GradePoint {
static void Main() {
string grade;
Console.Write("Please input your grade: ");
grade = Console.ReadLine();
switch (grade) {
case "A" :
case "a" : Console.WriteLine("Your point is 4.0."); break;
case "B" :
case "b" : Console.WriteLine("Your point is 3.0."); break;
case "C" :
case "c" : Console.WriteLine("Your point is 2.0."); break;
case "D" :
case "d" : Console.WriteLine("Your point is 1.0."); break;
case "F" :
case "f" : Console.WriteLine("Your point is 0.0."); break;
default: Console.WriteLine("Invalid input!!"); break;
}
}
}
โปรแกรมนี้ยังสามารถทําใหสั้นลงไดอีกโดยการใชตัวแปรเสริมอีกตัวเพื่อเก็บแตมระดับคะแนน
แลวจึงนําคาของตัวแปรพิมพออกทางหนาจอโดยใชคําสั่ง Console.WriteLine ในคราวเดียวกอน
จบโปรแกรม ดังแสดง
using System;
class GradePoint {
static void Main() {
string grade;
double point = -1;
Console.Write("Please input your grade: ");
grade = Console.ReadLine();
switch (grade) {
case "A" : case "a" : point = 4.0; break;
case "B" : case "b" : point = 3.0; break;
case "C" : case "c" : point = 2.0; break;
case "D" : case "d" : point = 1.0; break;
case "F" : case "f" : point = 0.0; break;
default: Console.WriteLine("Invalid input!!"); break;
}
if (point >= 0)
Console.WriteLine("Your point is {0:f1}.", point);
}
}
สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี 61
4. ตัวอยางที่ 3.6 โปรแกรมตอไปนี้เปนโปรแกรมเครื่องคิดเลขอยางงาย เมือเริ่มทํางานโปรแกรมจะใหผูใช
่
ปอนคาตัวเลขจํานวนจริงสองคา พรอมระบุตัวดําเนินการทางคณิตศาสตรที่ตองการโดยเปนไดเพียง + หรือ
- จากนั้นโปรแกรมจะแสดงผลลัพธจากการคํานวณ หากผูใชปอนตัวดําเนินการอื่นนอกเหนือจาก + หรือ -
โปรแกรมจะรายงานความผิดพลาด
1: using System;
2: class Calculator {
3: static void Main() {
4: double n1, n2, ans = 0;
5: char op;
6: Console.Write("Enter the first number: ");
7: n1 = double.Parse(Console.ReadLine());
8: Console.Write("Enter the second number: ");
9: n2 = double.Parse(Console.ReadLine());
10: Console.Write("Enter the operator: ");
11: op = char.Parse(Console.ReadLine());
12: switch(op) {
13: case '+': ans = n1+n2; break;
14: case '-': ans = n1-n2; break;
15: default: op = ' '; break;
16: }
17: if (op == ' ')
18: Console.WriteLine("Invalid operator!");
19: else
20: Console.WriteLine("{0}{1}{2} = {3}", n1, op, n2, ans);
21: }
22: }
สังเกตบรรทัดที่ 15 ซึ่งใชจัดการกรณีที่ผูใชปอนตัวดําเนินการอื่นนอกเหนือจาก + หรือ - บรรทัดนี้
จะเปลี่ยนคาของตัวแปร op ใหเปนชองวาง (' ') เพื่อนําไปเช็คที่ทายโปรแกรมอีกทีหนึ่ง
ตัวอยางผลการทํางาน
Enter the first number: 8
Enter the second number: 10
Enter the operator: +
8+10 = 18
62 สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี