Java Khóa Học

[Bài 5] Switch – Case trong Java (Câu lệnh điều khiển / Câu lệnh rẽ nhánh)

Bài 5 Switch Case trong Java Câu lệnh điều khiển Câu lệnh rẽ nhánh - [Bài 5] Switch - Case trong Java (Câu lệnh điều khiển / Câu lệnh rẽ nhánh)
Written by TINET

Bài viết đã được cập nhật vào:

Cấu trúc code Switch case như sau:

switch(expression) {
  case x:
    // code block
    break;
  case y:
    // code block
    break;
  default:
    // code block
}

Lệnh Switch trong Java là gì?

java switch case 1 - [Bài 5] Switch - Case trong Java (Câu lệnh điều khiển / Câu lệnh rẽ nhánh)

Lệnh switch cho phép bạn kiểm tra một biến bình đẳng với một danh sách các giá trị. Mỗi giá trị được gọi là một case – trường hợp. Nếu giá trị này trùng với case nào thì các lệnh tương ứng với case đó sẽ được thực thi.

Một ví dụ nhỏ cho việc xử lý các ngày trong tuần nhé:

public class MyClass {
  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;
    }
  }
}
Tryit Editor

 

Quy tắc cơ bản áp dụng cho một lệnh Switch

  • Biến được sử dụng trong một lệnh switch chỉ có thể là byte, short, int hoặc char.
  • Bạn có thể có nhiều lệnh case bên trong một lệnh switch. Mỗi case được theo sau bởi giá trị để được so sánh và một dấu hai chấm.
  • Giá trị cho một case phải giống kiểu dữ liệu của biến trong switch và nó phải là hằng số hoặc literal.
  • Khi biến đang được switch là tương đương với một case, các lệnh theo sau case đó sẽ thực thi tới khi gặp lệnh break.
  • Khi gặp một lệnh break thì switch kết thúc, và luồng điều khiển nhảy tới dòng tiếp theo lệnh switch.
  • Không phải mọi case đều cần một break. Nếu không có lệnh break xuất hiện, luồng điều khiển sẽ đi qua các case sau đó tới khi gặp một lệnh break.
  • Một lệnh switch có thể có một case mặc định, mà phải xuất hiện ở cuối lệnh switch. Case mặc định này có thể được sử dụng để thực thi một tác vụ trong trường hợp không có case nào là true. Trong trường hợp này, chúng ta không cần lệnh break.

Tại sao lại dùng Switch mà không dùng If Else

sự khác nhau giữa switch case va if else - [Bài 5] Switch - Case trong Java (Câu lệnh điều khiển / Câu lệnh rẽ nhánh)

Trong trường hợp 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ác bạn hình dung một bài toán có hàng chục trường hợp mà bạn sử dụng If Else thì vẫn ok thôi nhưng code của chúng ta rất rối, không chuyên nghiệp mà còn rất khó để kiểm tra, fix lỗi hoặc xử lý thêm, vì vậy nên sinh ra cấu trúc Switch – Case

  • Switch – case sẽ giúp cấu trúc chương trình rõ ràng, dễ đọc, dễ hiểu hơn so với if-else.
  • Switch – case sẽ kiểm tra 1 biến để thực hiện 100 trường hợp khác nhau, còn if else phải kiểm tra 100 điều kiện để thực hiện 100 trường hợp khác nhau.
  • Giả sử số điều kiện lên đến 1000, nếu sử dụng if-else thì R.I.P cho anh lập trình viên ^^, vì phải viết rất nhiều biểu thức điều kiện có thể gây ra những nhầm lẫn không đáng có.

Phần này cũng trả lời cho các câu hỏi:

  • Khi nào nên dùng Switch case và If Else?
  • Sự khác nhau giữa cấu trúc Switch case và If Else là gì?

Từ khóa Break có tác dụng gì?

How Switch Case works in Java Programming language - [Bài 5] Switch - Case trong Java (Câu lệnh điều khiển / Câu lệnh rẽ nhánh)

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,

Một ví dụ nữa cho các bạn hiểu hơn nhé:

public class HienThiThangTuongUng {
 
    public static void main(String[] args) {
        int thang;
        String thangTuongUng = "";
        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:
                thangTuongUng = "Tháng 1";
            case 2:
                thangTuongUng = "Tháng 2";
            case 3:
                thangTuongUng = "Tháng 3";
            case 4:
                thangTuongUng = "Tháng 4";
            case 5:
                thangTuongUng = "Tháng 5";
            case 6:
                thangTuongUng = "Tháng 6";
            case 7:
                thangTuongUng = "Tháng 7";
            case 8:
                thangTuongUng = "Tháng 8";
                break;
            case 9:
                thangTuongUng = "Tháng 9";
                break;
            case 10:
                thangTuongUng = "Tháng 10";
                break;
            case 11:
                thangTuongUng = "Tháng 11";
                break;
            case 12:
                thangTuongUng = "Tháng 12";
                break;
            default:
                System.out.println("Số nhập vào phải nằm trong khoảng từ 1 đến 12.");
        }
        System.out.println(thangTuongUng);
    }
 
}

Bài tập nhỏ nhỏ nè!

Tryit Editor

 

Chúc các bạn có một buổi học vui vẻ!


[Bài 5] Switch – Case trong Java (Câu lệnh điều khiển / Câu lệnh rẽ nhánh) – Khóa học Java cơ bản miễn phí tại – Kynangso.net

 

About the author

TINET

Leave a Comment