Cấu Trúc Rẽ Nhánh Switch Case Trong Java | Lập Trình Từ Đầu
Có thể bạn quan tâm
Switch case cũng là một cấu trúc điều khiển giống như if else . Về mặt chức năng thì câu lệnh switch case cũng có chức năng tương tự như câu lệnh if else . Tuy nhiên switch case chỉ kiểm tra sẽ xem 1 biến có bằng với giá trị nào đó hay không thôi, chứ không thể kiểm tra được nhiều điều kiện như if . Vì thế nên switch chỉ làm việc đối với một số kiểu dữ liệu nguyên thủy như char , byte , short và int . Ngoài ra nó cũng hoạt động với enum , String và một vài class wraper của các kiểu dữ liệu nguyên thủy như: Character , Byte , Short , và Integer .
Cấu trúc rẽ nhánh switch case cho phép ta lựa chọn một trong nhiều phương án có khả năng xảy ra. Nó có thể dùng dể thay thế cho cấu trúc điều khiển if else mà mình đã trình bày trong bài Câu lệnh điều kiện if – else trong Java
Vậy khi nào chúng ta nên sử dụng cấu trúc rẽ nhánh switch case thay thế cho cấu trúc điều khiển if else ? Khi mà chúng ta có số trường hợp cần xử lý lớn hơn 3 thì khi đó chúng ta nên sử dụng switch case để dễ dàng kiểm tra và xử lý, giúp cho chương trình dễ quan sát hơn.
Cú pháp :
switch (variable) { case condition1: //code break; case condition2: //code break; ... ... case conditionN: //code break; default: //code break; }Trong đó:
- variable là biến cần kiểm tra. Hoặc biểu thức phải trả về kết quả là một số nguyên, chuỗi hoặc một ký tự.
- condition1 , condition2 ,… conditionN là các điều kiện. Nếu điều kiện nào đúng (true) thì code bên trong case đó sẽ được thực thi. Hoặc là các biểu thức hằng, nguyên hoặc ký tự và chúng phải khác nhau.
- default là block chứa đoạn code sẽ được thực thi nếu như không có case nào đúng. Đây là block không bắt buộc, trong một switch case có thể có hoặc không có block này.
Đầu tiên chúng ta sẽ xem qua một vài ví dụ về switch case trong Java
Ví dụ dưới đây sử dụng số ngày trong tuần để tính tên ngày trong tuần:
class Main { public static void main(String[] args) { int day = 4; switch (day) { case 1: System.out.println("Monday"); break; case 2: System.out.println("Tuesday"); break; case 3: System.out.println("Wednesday"); break; case 4: System.out.println("Thursday"); break; case 5: System.out.println("Friday"); break; case 6: System.out.println("Saturday"); break; case 7: System.out.println("Sunday"); break; } } }Kết quả
ThursdayVí dụ nhập vào một số nguyên từ 1 – 12 từ bàn phím và hiển thị ra tháng tương ứng với số đó
import java.util.Scanner; class Main { public static void main(String[] args) { int thang; Scanner scanner = new Scanner(System.in); System.out.println("Nhập vào 1 số nguyên (từ 1 đến 12): "); thang = scanner.nextInt(); switch (thang) { case 1: System.out.println("Tháng 1"); break; case 2: System.out.println("Tháng 2"); break; case 3: System.out.println("Tháng 3"); break; case 4: System.out.println("Tháng 4"); break; case 5: System.out.println("Tháng 5"); break; case 6: System.out.println("Tháng 6"); break; case 7: System.out.println("Tháng 7"); break; case 8: System.out.println("Tháng 8"); break; case 9: System.out.println("Tháng 9"); break; case 10: System.out.println("Tháng 10"); break; case 11: System.out.println("Tháng 11"); break; case 12: System.out.println("Tháng 12"); break; default: System.out.println("Số nhập vào phải nằm trong khoảng từ 1 đến 12."); } } }Kết quả
Nhập vào số nguyên (từ 1 đến 12): 6 Tháng 6Các dòng lệnh trong những ví dụ trên sẽ chạy như sau:
- Chương trình sẽ so sánh giá trị của biểu thức với các giá trị của các case
- Trong các giá trị của case có giá trị nào bằng với giá trị của biểu thức thì chương trình sẽ bắt đầu thực hiện các lệnh tương ứng nằm trong case của giá trị đó. Đến khi gặp một lệnh break đầu tiên thì thoát ngay khỏi switch, bỏ qua các case còn lại và thực hiện lệnh đầu tiên nằm ngay sau cấu trúc này
- Nếu giá trị của biểu thức không bằng với bất kỳ giá trị nào trong danh sách điều kiện case thì lệnh 0 sẽ được thực hiện nếu có thành phần default
Chú ý
- Lệnh break là để nhảy ra khỏi lệnh switch. Nếu không có lệnh này cấu trúc switch sẽ duyệt cả các trường hợp phía dưới cho đến khi gặp dấu đóng switch (dấu }) (vì chưa gặp break coi như chưa ra khỏi lệnh switch ).
- Khi sử dụng lệnh switch có thể xảy ra nhiều giá trị trả về cho một trường hợp (một khả năng xảy ra của biểu thức).
Từ khóa break là một lệnh có thể xuất hiện trong khối lệnh case , hoặc khối lệnh default của switch. Khi bắt gặp lệnh break chương trình sẽ thoát ra khỏi switch .
Nghĩa là khi một case thỏa mãn điều kiện thì chương trình sẽ chạy vào khối lệnh trong case đó, và chạy đến cuối nó bắt gặp lệnh Break; . Ngay lập tức nó sẽ thoát khỏi Switch, tránh việc chương trình duyệt thêm các case khác sẽ tốn tài nguyên và dữ liệu.
Nếu như ta muốn gom nhóm case để cùng xử lí một đoạn code thì có thể bỏ break ở những case phía trên đi, và chỉ để lại ở case cuối cùng có điều kiện thuộc nhóm đó. Vì break có tác dụng phá vỡ một vòng lặp hay một switch case , tất cả các đoạn code nằm sau break và trong một block scope (trong cặp dấu “{}”) sẽ không được thực thi.
Ví dụ:
class Main { public static void main(String[] args) { int number = 3; switch(number){ case 1: case 2: case 3: case 4: System.out.println("Nho hon 5"); break; default: System.out.println("Lon hon 5"); break; } } }Kết quả
Nho hon 5 4. Từ khóa default trong JavaCâu lệnh switch cũng có thêm một trường hợp mặc định là default . Nếu không có case nào thỏa điều kiện thì trường hợp default sẽ được thực thi. Nếu default được sử dụng làm câu lệnh cuối cùng trong khối switch thì nó không cần ngắt.
Ví dụ:
class Main { public static void main(String[] args) { int expression = 9; switch(expression) { case 2: System.out.println("Small Size"); break; case 3: System.out.println("Large Size"); break; // default case default: System.out.println("Unknown Size"); } } }Kết quả
Unknown Size 5. Ví dụ cơ bản về switch case trong JavaVí dụ 1: trường hợp có case thỏa mãn
class Main{ public static void main(String[] args) { int number = 2; switch (number) { case 1: System.out.println("Đây là số 1"); break; case 2: System.out.println("Đây là số 2"); break; case 3: System.out.println("Đây là số 3"); break; case 4: System.out.println("Đây là số 4"); break; case 5: System.out.println("Đây là số 5"); break; } } }Kết quả
Đầy là số 2Ví dụ 2: trường hợp không có case nào thỏa mãn
class Main{ public static void main(String[] args) { int number = 2; switch (number) { case 1: System.out.println("Đây là số 1"); break; case 2: System.out.println("Đây là số 2"); break; case 3: System.out.println("Đây là số 3"); break; case 4: System.out.println("Đây là số 4"); break; case 5: System.out.println("Đây là số 5"); break; default: System.out.println("Đã chạy vào câu lệnh default"); break; } } }Kết quả
Đã chạy vào câu lệnh defaultVí dụ 3: trường hợp Switch case không sử dụng break
class Main{ public static void main(String[] args) { int number = 2; switch (number) { case 1: System.out.println("Đây là số 1"); case 2: System.out.println("Đây là số 2"); case 3: System.out.println("Đây là số 3"); case 4: System.out.println("Đây là số 4"); case 5: System.out.println("Đây là số 5"); default: System.out.println("Đã chạy vào câu lệnh default"); } } }Kết quả
Đầy là số 2 Đầy là số 3 Đầy là số 4 Đầy là số 5 Đã chạy vào câu lệnh defaultTừ khóa » Cấu Trúc Switch Case Trong Java
-
Cấu Trúc SWITCH CASE Trong Java Qua VÍ DỤ - NIIT - ICT Hà Nội
-
Mệnh đề Switch-case Trong Java - Học Java Miễn Phí Hay Nhất
-
Mệnh đề Switch-case Trong Java - GP Coder (Lập Trình Java)
-
Bài 9 Cách Dùng Switch Case Trong Java - IT For Student
-
Cấu Trúc Switch Case Trong Java - KungFu Tech
-
Cấu Trúc Rẽ Nhánh Switch - Case Trong Java.
-
[Bài 5] Switch - Case Trong Java (Câu Lệnh điều ...
-
Cấu Trúc Switch-case Trong Java
-
Câu Lệnh Switch Case Và Toán Tử điều Kiện Trong Java - Góc Học IT
-
Cấu Trúc điều Khiển If - Else, Switch - Case Trong Java - Viblo
-
Lệnh IF/ELSE, Lệnh SWITCH/CASE Trong Java - Hoclaptrinh
-
Câu Lệnh Rẽ Nhánh Switch Trong Java - Openplanning
-
Cấu Trúc Switch..Case Trong Java - 9 - Hệ Thống Hỗ Trợ Tự Học
-
Top 15 Cách Sử Dụng Switch Case Trong Java