switch-case เป็นคำสั่งให้โปรแกรมเลือกทำงานจากหลายทางเลือก ในแต่ละทางเลือกจะมีการกำหนดเงื่อนไขของแต่ละทาง โดยจะตรวจสอบเงื่อนไขแต่ละทางเลือก หากพบว่าทางเลือกใดมีเงื่อนไขเป็นจริง จะทำงานที่ชุดคำสั่งภายในทางเลือกนั้น โดยไม่พิจารณาทางเลือกอื่นที่ยังไม่ตรวจสอบ ซึ่งมีรูปแบบดังนี้
|
switch (expression){
case list_value_1;
statements_1;
break;
case list_value_2;
statements_2;
break;
:
:
case list_value_n;
statements_n;
break;
default :
statements
}
|
|
โดยที่ expression เป็นนิพจน์ที่ต้องตรวจสอบว่าตรงกับ
list_value ใด เพื่อจะได้ทำงานภายใต้คำสั่ง list_valueนั้น
list_value เป็นค่าข้อมูลที่ใช้ตรวจสอบกับ expression
statements_n เป็นชุดคำสั่งที่จะทำงานเมื่อ list_value นั้นมีค่าเท่ากับ expression
statements เป็นชุดคำสั่งที่จะทำงานเมื่อไม่มี list_value ใดมีค่าเท่ากับ expression
ตัวอย่าง
โปรแกรม switch-case
โจทย์ เขียนโปรแกรมคำนวณค่างวดรถยนต์ โดยให้ป้อนข้อมูลรถยนต์ดังนี้
1.ราคารถยนต์ 2.เงินดาว์ (%)
3.เงินดาว์ (บาท) 4.เหลือยอดที่ต้องผ่อนชำระ
5.เลือกระยะเวลาในการผ่อน
(1) ผ่อน 36 งวด ดอกเบี้ย 1.25%
(2) ผ่อน 48 งวด ดอกเบี้ย 1.75%
(3) ผ่อน 60 งวด ดอกเบี้ย 2.25%
(4) ผ่อน 72 งวด ดอกเบี้ย 2.75%
(5) ผ่อน 84 งวด ดอกเบี้ย 3.00%
6.แสดงยอดเงินที่ต้องผ่อนชำระ/เดือน
|
import javax.swing.JOptionPane;
class TestSwitch {
public static void main (String[] args) {
double price,down,down_b,balance_b;
double interest,paid_m,month;
int choice;
price=0;balance_b=0;interest=0;month=0;
String input;
System.out.println ("The Program applies to Toyoya car");
System.out.println ("----------------------------------");
input=JOptionPane.showInputDialog("The car price :");
price=Double.parseDouble(input);
input=JOptionPane.showInputDialog("Down Payment(%) :");
down=Double.parseDouble(input);
down_b=(price*(down/100));
JOptionPane.showMessageDialog(null,"Down Payment ="+down_b+" baht");
balance_b=price-down_b;
JOptionPane.showMessageDialog(null,"Baance to be pay ="+balance_b+" baht");
System.out.println ("1. 36 months/interest 1.25");
System.out.println ("2. 48 months/interest 1.75");
System.out.println ("3. 60 months/interest 2.25");
System.out.println ("4. 72 months/interest 2.75");
System.out.println ("5. 84 months/interest 3.00");
input=JOptionPane.showInputDialog("Select Number 1,2,3,4,5 :");
choice = Integer.parseInt(input);
switch(choice){
case 1 : month=36;interest=1.25;
break;
case 2 : month=48;interest=1.75;
break;
case 3 : month=60;interest=2.25;
break;
case 4 : month=72;interest=2.75;
break;
case 5 : month=84;interest=3.00;
break;
default:
JOptionPane.showMessageDialog(null,"Yout select is not 1,2,3,4,5");
}
paid_m=((((balance_b*interest)/100)*(month/12))+balance_b)/month;
JOptionPane.showMessageDialog(null,"Payment "+paid_m+" baht/mounth");
}//end main
}//end class
|
|
OUTPUT
1.เมื่อรันโปรแกรม จะขึ้นได้อะล๊อคบ๊อคขึ้นมา ให้ใส่ราคารถยนต์ แล้วกดตกลง
2.ใส่จำนวนเปอร์เซ็นต์เงินดาว์ลงในไดอะล๊อคบ๊อก
3.จากนั้นไดอะล๊อคบ๊อกจะโชว์ยอดเงินดาว์เป็นจำนวนเงินบาท
4.จากนั้นไดอะล๊อคบ๊อกจะโชว์ยอดเงินคงเหลือที่ต้องชำระ
5.หน้าจอจะโชว์ระยะเวลาในการผ่อน ให้ใส่เลข 1,2,3,4, หรือ 5 ลงในไดอะล๊อคบ๊อก
6.จากนั้นไดอะล๊อคบ๊อกจะโชว์ยอดเงินที่ต้องชำระ/เดือน
ข้อสังเกตุ จากโปรแกรม คำนวณคำนวณค่างวดรถยนต์ ได้เพิ่ม กล่องข้อความหรือไดอะล๊อคบ๊อกเข้ามา โดยใช้คลาส JOptionPane ประเภทของไดอะล๊อคบ๊อกในคลาส JOptionPane นั้นมีสองชนิดคือ
- Message Dialog เป็นไดอะล๊อคบ๊อกใช้แสดงข้อความมีปุ่ม OK ให้กด
- Input Dialog เป็นไดอะล๊อคบ๊อกใช้แสดงข้อความ และมีช่องสำหรับใส่ข้อมูลเข้าไปเรียกว่าอินพุต มีปุ่ม OK และ Cancelled ให้กดเพื่อรับข้อมูล เข้าไป
ในการใช้งาน คลาส JOptionPane จะต้องเรียกแพ็คเก็จที่เก็บคลาสนี้ขึ้นมาด้วย ซึ่งทำได้โดย import javax.swing.JOptionPane;
ถ้าต้องการแสดงไดอะล๊อคบ๊อก ที่ใช้แสดงข้อความจะต้องเรียกใช้เมธอดดังตัวอย่างต่อไปนี้
|
JOptionPane.showMessageDialog(null,"ข้อความที่ต้องการโชว์");
|
|
แต่ถ้าต้องการไดอะล๊อคบ๊อกที่เป็นอนพุต จะต้องสร้างออบเจ็กต์แบบสตริงขึ้นมาเพื่อใช้รับข้อมูลนั้น ดังตัวอย่างต่อไปนี้
|
String input;
input=JOptionPane.showInputDialog("The car price :");
| |