Đối với trường hợp có nhiều câu điều điện cần kiểm tra ví dụ như: "Hôm nay trời nắng thì ... trời mưa thì... trời râm thì... trời quang thì..." thì Java cũng cung cấp cho ta một cú pháp khác để tránh phải viết nhiều lần if, đó chính là switch-case
Cấu trúc switch case dạng khuyết trong Java
Cú pháp dạng khuyết
java
switch(biến) {
case giá trị 1:
câu lệnh 1;
câu lệnh 2;
...
break;
case giá trị 2:
câu lệnh 1;
câu lệnh 2;
...
break;
...
case giá trị n:
câu lệnh 1;
câu lệnh 2;
...
break;
}
Sau đây là sơ đồ khối mô tả sự hoạt động của cấu trúc rẽ nhánh switch dạng thiếu
Switch sẽ kiểm tra giá trị của biến (nằm trong ngoặc đơn sau switch kia), và so sánh biến với từng giá trị khác nhau, lần lượt từ trên xuống dưới, mỗi giá trị cần so sánh gọi là một case. Ở đoạn code trên, các giá trị để so sánh với biến là giá trị 1, giá trị 2. Khi một trường hợp đúng (true
), khối lệnh ở trong case
đó sẽ được thực thi. Câu lệnh break
để thoát ra khỏi cấu trúc switch bạn có thể xem thêm ở bài từ khóa break và continue.
java
public class Thaycacac {
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ố 2
Cấu trúc switch case dạng đầy đủ trong Java
Cú pháp dạng đầy đủ
java
switch(biểu thức) {
case giá trị 1:
câu lệnh 1;
câu lệnh 2;
...
break;
case giá trị 2:
câu lệnh 1;
câu lệnh 2;
...
break;
...
case giá trị n:
câu lệnh 1;
câu lệnh 2;
...
break;
default:
câu lệnh 1;
câu lệnh 2;
...
}
Sau đây là sơ đồ khối mô tả sự hoạt động của cấu trúc switch dạng đủ
Nếu tất cả các trường hợp đều sai (tức là các giá trị ở case
không bằng với biến), thì khối lệnh ở trong default
sẽ được thực thi.
java
public class Thaycacac {
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 khối default");
}
}
}
Kết quả
Đây là số 2
Đây là số 3
Đây là số 4
Đây là số 5
Chạy vào khối default
Có thể bạn chưa biết
- Biến phải là một biểu thức có kiểu char, byte, short, int nhưng không thể là kiểu long, nếu Biến có kiểu khác với các kiểu liệt kê ở trên thì java sẽ đưa ra một thông báo lỗi.
- Nếu case không có break thì nó sẽ thực hiện đến hết, khi không còn khối nào thì thôi.