Java - Câu lệnh Switch: Hướng dẫn cho người mới bắt đầu

Xin chào các bạn, những nhà phát triển Java tương lai! Hôm nay, chúng ta sẽ đi mạo hiểm vào một trong những câu lệnh kiểm soát luồng thông dụng nhất trong Java: câu lệnh switch. Là một giáo viên khoa học máy tính thân thiện, tôi rất vui mừng hướng dẫn các bạn trong chuyến hành trình này. Vậy, hãy lấy ly đồ uống yêu thích của bạn, thoải mái đi, và hãy cùng nhau bắt đầu cuộc phiêu lưu lập trình này!

Java - Switch

Switch Statement là gì?

Trước khi chúng ta xuyên sâu vào chi tiết của câu lệnh switch, hãy bắt đầu với một so sánh dễ hiểu. Tưởng tượng bạn đứng trước tủ quần áo của mình, quyết định mặc điều gì dựa trên thời tiết. Bạn có thể suy nghĩ:

  • Nếu trời nắng, tôi sẽ mặc áo phông.
  • Nếu đang mưa, tôi sẽ cầm đũa cơ.
  • Nếu đang có tuyết, tôi sẽ mặc áo dày.
  • Đối với các điều kiện thời tiết khác, tôi chỉ mặc quần áo thường nhé.

Quá trình quyết định này chính là điều gì câu lệnh switch làm trong Java! Nó cho phép bạn thực thi các khối mã khác nhau dựa trên giá trị của một biến hoặc biểu thức duy nhất.

Cú pháp của câu lệnh Switch

Bây giờ, hãy xem cú pháp cơ bản của câu lệnh switch:

switch (biểu_thức) {
case giá_trị1:
// khối mã
break;
case giá_trị2:
// khối mã
break;
case giá_trị3:
// khối mã
break;
default:
// khối mã
}

Đừng lo nếu điều này trông có chút khó hiểu ban đầu. Chúng ta sẽ phân tích từng bước!

Các thành phần chính:

  1. Từ khóa switch: Điều này để chúng ta nói với Java rằng chúng ta đang sử dụng câu lệnh switch.
  2. biểu_thức: Đây là biến hoặc biểu thức mà chúng ta đang kiểm tra.
  3. case: Mỗi trường hợp đại diện cho một giá trị có thể của biểu thức.
  4. break: Từ khóa này nói với Java để thoát khỏi khối switch sau khi thực thi một trường hợp.
  5. default: Đây như là tùy chọn "đối với các điều kiện thời tiết khác" của chúng ta - nó sẽ chạy nếu không có trường hợp nào khớp.

Quy tắc của câu lệnh Switch

Bây giờ, hãy đi qua một số quy tắc quan trọng cần lưu ý khi sử dụng câu lệnh switch:

  1. Biểu thức sử dụng trong switch phải là kiểu cơ bản như int, char, hoặc một định nghĩa. Bắt đầu từ Java 7, nó cũng có thể là một String.
  2. Giá trị của case phải là các hằng số lúc biên dịch cùng kiểu với biểu thức switch.
  3. Không có hai giá trị case nào có thể trùng nhau.
  4. Trường hợp mặc định là tùy chọn và có thể xuất hiện bất kỳ đâu trong khối switch.
  5. Nếu không có câu lệnh break, thực thi sẽ tiếp tục đến các trường hợp tiếp theo cho đến khi gặp câu lệnh break hoặc switch kết thúc.

Đồ thị luồng

Để trực quan hóa cách câu lệnh switch hoạt động, hãy xem một đồ thị đơn giản:

+-------------+
| biểu_thức   |
+-------------+
|
v
+-------------+
|  case 1?    |----> Thực thi mã case 1
+-------------+
|
v
+-------------+
|  case 2?    |----> Thực thi mã case 2
+-------------+
|
v
+-------------+
|  case 3?    |----> Thực thi mã case 3
+-------------+
|
v
+-------------+
|  default    |----> Thực thi mã default
+-------------+

Ví dụ về câu lệnh Switch

Bây giờ, hãy đặt kiến thức của chúng ta vào thực tế với một số ví dụ!

Ví dụ 1: Ngày trong tuần

public class DayPrinter {
public static void main(String[] args) {
int day = 4;
String dayName;

switch (day) {
case 1:
dayName = "Thứ hai";
break;
case 2:
dayName = "Thứ ba";
break;
case 3:
dayName = "Thứ tư";
break;
case 4:
dayName = "Thứ năm";
break;
case 5:
dayName = "Thứ sáu";
break;
case 6:
dayName = "Thứ bảy";
break;
case 7:
dayName = "Chủ nhật";
break;
default:
dayName = "Ngày không hợp lệ";
break;
}
System.out.println(dayName);
}
}

Trong ví dụ này, chúng ta đang sử dụng câu lệnh switch để chuyển đổi số ngày thành tên ngày tương ứng. Chương trình sẽ xuất ra "Thứ năm" vì giá trị của day là 4.

Ví dụ 2: Tính toán điểm số

public class GradeCalculator {
public static void main(String[] args) {
char grade = 'B';

switch(grade) {
case 'A':
System.out.println("Xuất sắc!");
break;
case 'B':
case 'C':
System.out.println("Rất tốt";
break;
case 'D':
System.out.println("Bạn đã đạt";
break;
case 'F':
System.out.println("Cố gắng lại nhé";
break;
default:
System.out.println("Điểm không hợp lệ";
}
}
}

Ví dụ này minh họa cách chúng ta có thể sử dụng câu lệnh switch với giá trị char. Nó cũng cho thấy cách chúng ta có thể nhóm các trường hợp lại với nhau (B và C) nếu chúng ta muốn chúng thực thi cùng một khối mã.

Từ khóa Default

Từ khóa default trong câu lệnh switch như một mạng an toàn. Nó bắt giá trị không khớp với bất kỳ trường hợp nào. Hãy xem một ví dụ:

public class SeasonChecker {
public static void main(String[] args) {
String month = "April";
String season;

switch (month.toLowerCase()) {
case "december":
case "january":
case "february":
season = "Xuân";
break;
case "march":
case "april":
case "may":
season = "Hạ";
break;
case "june":
case "july":
case "august":
season = "Thủy";
break;
case "september":
case "october":
case "november":
season = "Đông";
break;
default:
season = "Tháng không hợp lệ";
break;
}
System.out.println("Mùa là " + season);
}
}

Trong ví dụ này, nếu chúng ta nhập một tháng không có trong danh sách (như "Octember"), trường hợp mặc định sẽ bắt nó và gán "Tháng không hợp lệ" cho biến mùa.

Kết luận

Và thế là, các bạn! Chúng ta đã hành trình qua vùng đất của câu lệnh switch Java, từ cú pháp cơ bản đến các ví dụ phức tạp hơn. Hãy nhớ, luyện tập sẽ làm cho bạn hoàn hảo, vì vậy đừng sợ thử nghiệm với các câu lệnh switch của riêng bạn.

Trước khi kết thúc, dưới đây là bảng tóm tắt các điểm chính về câu lệnh switch:

Tính năng Mô tả
Mục đích Thực thi các khối mã khác nhau dựa trên giá trị của biểu thức
Kiểu biểu thức int, char, String (Java 7+), enum
Giá trị case Phải là các hằng số lúc biên dịch
Câu lệnh break Đùng để thoát khỏi khối switch
Trường hợp mặc định Tùy chọn, xử lý các giá trị không được bao gồm bởi các trường hợp

Tôi hy vọng hướng dẫn này đã giúp sáng lên thế giới của câu lệnh switch cho bạn. Hãy tiếp tục lập trình, học hỏi và nhớ rằng - trong câu lệnh switch lớn của cuộc sống, bạn luôn là trường hợp mặc định: độc đáo và đặc biệt!

Credits: Image by storyset