Bài 19. Câu Lệnh Switch ... Case Trong Java | Tự Học Java Căn Bản
- Published on

Câu Lệnh Switch ... Case Trong Java Là Gì?
Trong lập trình Java, câu lệnh switch
là một công cụ quan trọng để thực hiện các phép so sánh và điều kiện. Thay vì sử dụng nhiều câu lệnh if...else
để kiểm tra các điều kiện khác nhau, câu lệnh switch
giúp mã nguồn trở nên gọn gàng và dễ hiểu hơn. Câu lệnh switch
thường được sử dụng khi bạn cần phải kiểm tra giá trị của một biến đối với một loạt các giá trị có thể có và thực hiện hành động tương ứng.
Trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng câu lệnh switch ... case
trong Java, các cú pháp cơ bản, ví dụ thực tế, và những điều cần lưu ý khi sử dụng.
Cú Pháp Cơ Bản của Câu Lệnh Switch
Câu lệnh switch
trong Java có cú pháp cơ bản như sau:
switch (biến) {
case giá trị_1:
// Thực hiện hành động khi biến == giá trị_1
break;
case giá trị_2:
// Thực hiện hành động khi biến == giá trị_2
break;
// Các case khác (nếu cần)
default:
// Thực hiện hành động nếu không có case nào khớp
}
Trong đó:
biến
: Biến hoặc giá trị cần kiểm tra (có thể làint
,char
,String
, hoặc một số kiểu dữ liệu khác).case giá trị_n
: Kiểm tra xem biến có giá trị làgiá trị_n
không. Nếu đúng, thực hiện đoạn mã bên trongcase
.break
: Dùng để thoát khỏi câu lệnhswitch
. Nếu không cóbreak
, chương trình sẽ tiếp tục kiểm tra các case tiếp theo, điều này có thể không mong muốn.default
: Là một trường hợp mặc định khi không có case nào khớp. Đây là phần không bắt buộc nhưng rất hữu ích khi bạn muốn xử lý các tình huống không lường trước.
Dưới đây là một ví dụ đơn giản về cách sử dụng câu lệnh switch
trong Java để kiểm tra ngày trong tuần và in ra tên của ngày tương ứng:
public class SwitchExample {
public static void main(String[] args) {
int day = 3; // Giả sử ngày là thứ 3
switch (day) {
case 1:
System.out.println("Chủ nhật");
break;
case 2:
System.out.println("Thứ hai");
break;
case 3:
System.out.println("Thứ ba");
break;
case 4:
System.out.println("Thứ tư");
break;
case 5:
System.out.println("Thứ năm");
break;
case 6:
System.out.println("Thứ sáu");
break;
case 7:
System.out.println("Thứ bảy");
break;
default:
System.out.println("Ngày không hợp lệ");
}
}
}
Output:
Thứ ba
Trong ví dụ trên, biến day
có giá trị là 3, và câu lệnh switch
sẽ kiểm tra và in ra "Thứ ba" vì day == 3
.
switch
với String
Sử Dụng Java hỗ trợ sử dụng String
trong câu lệnh switch
, điều này giúp bạn dễ dàng so sánh các chuỗi văn bản.
public class SwitchStringExample {
public static void main(String[] args) {
String day = "Thứ ba";
switch (day) {
case "Chủ nhật":
System.out.println("Ngày nghỉ");
break;
case "Thứ hai":
System.out.println("Ngày làm việc");
break;
case "Thứ ba":
System.out.println("Ngày làm việc");
break;
case "Thứ tư":
System.out.println("Ngày làm việc");
break;
default:
System.out.println("Ngày không xác định");
}
}
}
Output:
Ngày làm việc
switch
mà Không Cần break
Sử Dụng Trong một số trường hợp, bạn có thể muốn thực hiện nhiều hành động cho các giá trị khác nhau mà không cần phải break
. Điều này có thể thực hiện bằng cách không sử dụng break
và để chương trình "tiếp tục" qua các case.
public class SwitchFallThrough {
public static void main(String[] args) {
int day = 3;
switch (day) {
case 1:
case 2:
case 3:
System.out.println("Cuối tuần sắp đến");
break;
case 4:
case 5:
System.out.println("Ngày làm việc");
break;
default:
System.out.println("Ngày không xác định");
}
}
}
Output:
Cuối tuần sắp đến
Trong ví dụ này, các case 1
, case 2
, và case 3
đều có chung hành động "Cuối tuần sắp đến".
Switch Expression (Switch trong các phiên bản Java mới)
Switch Expression (biểu thức switch
) là một cải tiến quan trọng được giới thiệu trong Java 12. Trước đó, câu lệnh switch
chỉ có thể được sử dụng như một câu lệnh thông thường. Tuy nhiên, với Switch Expression, bạn có thể sử dụng switch
để trả về giá trị, điều này giúp giảm thiểu các vấn đề không mong muốn và làm mã nguồn trở nên linh hoạt hơn.
Cú Pháp Mới của Switch Expression
Cú pháp mới cho Switch Expression sử dụng từ khóa ->
thay vì :
và không cần break
nữa.
int day = 3;
String result = switch (day) {
case 1 -> "Chủ nhật";
case 2 -> "Thứ hai";
case 3 -> "Thứ ba";
case 4 -> "Thứ tư";
case 5 -> "Thứ năm";
case 6 -> "Thứ sáu";
case 7 -> "Thứ bảy";
default -> "Ngày không hợp lệ";
};
System.out.println(result);
Output:
Thứ ba
Trong đó:
switch (day)
: Giống như câu lệnhswitch
truyền thống, bạn kiểm tra giá trị củaday
.case 1 -> "Chủ nhật";
: Nếuday == 1
, biểu thức sẽ trả về giá trị"Chủ nhật"
.default -> "Ngày không hợp lệ";
: Trường hợp mặc định khi không có giá trị nào khớp, biểu thức trả về"Ngày không hợp lệ"
.- Không cần
break
: Khi sử dụng Switch Expression, bạn không cần phải dùngbreak
vì mỗicase
sẽ trả về một giá trị và kết thúc ngay sau đó.
Switch Expression với Biểu Thức Đa Dòng
Bạn cũng có thể sử dụng Switch Expression để thực hiện các hành động phức tạp hơn trong một block, sử dụng yield
để trả về giá trị trong các khối lệnh nhiều dòng.
Ví dụ, bạn có thể tính toán hoặc thực hiện nhiều phép toán trước khi trả về giá trị:
int month = 4;
String season = switch (month) {
case 12, 1, 2 -> {
yield "Mùa đông";
}
case 3, 4, 5 -> {
yield "Mùa xuân";
}
case 6, 7, 8 -> {
yield "Mùa hè";
}
case 9, 10, 11 -> {
yield "Mùa thu";
}
default -> {
yield "Tháng không hợp lệ";
}
};
System.out.println(season);
Output:
Mùa xuân
Ở đây:
yield
dùng để trả về giá trị trong khối lệnh nhiều dòng.- Bạn có thể gộp nhiều
case
(ví dụ:case 12, 1, 2
) cho các giá trị liên quan.
Lợi Ích của Switch Expression
- Cải thiện tính linh hoạt: Bạn có thể trả về giá trị ngay lập tức mà không cần phải sử dụng
break
. - Dễ dàng xử lý nhiều giá trị hơn: Bạn có thể kết hợp nhiều
case
vào một dòng (nhưcase 12, 1, 2
), điều này giúp mã nguồn ngắn gọn và dễ hiểu hơn. - Tăng tính rõ ràng: Không cần phải lo lắng về việc thiếu
break
, điều này sẽ tránh các lỗi liên quan đến việc "fall-through" không mong muốn.
Kết Luận
Câu lệnh switch
trong Java là một công cụ mạnh mẽ giúp bạn kiểm tra và so sánh giá trị của biến với một loạt các giá trị khả dĩ. Nó giúp mã nguồn trở nên gọn gàng và dễ hiểu hơn khi xử lý nhiều điều kiện. Tuy nhiên, bạn cần phải cẩn thận khi sử dụng switch
để tránh các lỗi phổ biến như thiếu break
hoặc nhầm lẫn với các kiểu dữ liệu không hỗ trợ.
Hy vọng rằng bài viết này đã giúp bạn hiểu rõ hơn về cách sử dụng câu lệnh switch ... case
trong Java. Chúc bạn lập trình thành công!
Bài tiếp theo: Bài 20. Kiểm Tra Số Ngày Trong Tháng Bằng Switch ... Case
Bài viết mới nhất
Bài 26. Cách Sử Dụng break, continue và return Trong Java | Tự Học Java Căn Bản
Hướng dẫn cách sử dụng câu lệnh break, continue và return trong Java để kiểm soát vòng lặp và luồng thực thi chương trình hiệu quả.
Bài 25. Vòng Lặp do-while Trong Java | Tự Học Java Căn Bản
Hướng dẫn chi tiết về vòng lặp do-while trong Java, cách sử dụng, cú pháp, ví dụ minh họa và so sánh với vòng lặp while.
Bài 24. Cách Chuyển Đổi Số Từ Thập Phân Sang Nhị Phân Trong Java | Tự Học Java Căn Bản
Hướng dẫn cách chuyển đổi số từ hệ thập phân sang hệ nhị phân trong Java bằng nhiều phương pháp khác nhau, kèm theo ví dụ minh họa.
Bài 23. Cách Sử Dụng Vòng Lặp While Trong Java | Tự Học Java Căn Bản
Tìm hiểu cách sử dụng vòng lặp while trong Java với cú pháp, ví dụ thực tế và ứng dụng trong lập trình Java.
Bài viết liên quan
Bài 26. Cách Sử Dụng break, continue và return Trong Java | Tự Học Java Căn Bản
Hướng dẫn cách sử dụng câu lệnh break, continue và return trong Java để kiểm soát vòng lặp và luồng thực thi chương trình hiệu quả.
Bài 25. Vòng Lặp do-while Trong Java | Tự Học Java Căn Bản
Hướng dẫn chi tiết về vòng lặp do-while trong Java, cách sử dụng, cú pháp, ví dụ minh họa và so sánh với vòng lặp while.
Bài 24. Cách Chuyển Đổi Số Từ Thập Phân Sang Nhị Phân Trong Java | Tự Học Java Căn Bản
Hướng dẫn cách chuyển đổi số từ hệ thập phân sang hệ nhị phân trong Java bằng nhiều phương pháp khác nhau, kèm theo ví dụ minh họa.
Bài 23. Cách Sử Dụng Vòng Lặp While Trong Java | Tự Học Java Căn Bản
Tìm hiểu cách sử dụng vòng lặp while trong Java với cú pháp, ví dụ thực tế và ứng dụng trong lập trình Java.
