1. Switch là gì? Cú pháp

a. Switch là gì?

Switch thuộc dạng câu lệnh rẽ nhánh, switch sẽ kiểm tra so sánh biến với những giá trị khác nhau. Với mỗi trường hợp các giá trị, chúng ta sẽ viết những khối lệnh thực thi. Ngoài ra, có thể xử lý trường hợp không đúng với những giá trị mà ta đã liệt kê.

b. Cú pháp

Hoạt động của switch-case như sau:

  • Switch sẽ kiểm tra giá trị của và so sánh biến với từng giá trị khác nhau (giá trị 1, giá trị 2, …), 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.
  • Khi một trường hợp đúng (true), khối lệnh ở trong case đó sẽ được thực thi. 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 cần kiểm tra), thì khối lệnh ở trong default sẽ được thực thi.

Lưu ý: khối default là không bắt buộc có ở cấu trúc switch case trong Java, tức là bạn có thể viết cũng được mà không viết cũng không bị lỗi.

Trong một switch có thể có rất nhiều case, nói chung là bao nhiêu case cũng được. Nếu không gặp lệnh break trong khối lệnh này, thì chương trình sẽ thực hiện tiếp các case bên dưới cho tới khi nó gặp lệnh break thì nó sẽ thoát ra khỏi switch.
Giả sử mà switch không có lệnh break nào, thì nó sẽ thực hiện đến khi không còn khối lệnh nào để chạy.

Ví dụ:

import java.util.Scanner;

public class ViDuSwitch {

public static void main(String[] args) {

int m;

Scanner sc = new Scanner(System.in);

System.out.print(“Nhap vao 1 thang bat ky:”);

m = sc.nextInt();

switch (m) {

case 2:

System.out.println(“Co 28 hoac 29 ngay”);

break;

case 1, 3, 5, 7, 8, 10, 12:

System.out.println(“Co 31 ngay”);

         break;

default:

System.out.println(“Co 30 ngay”);

}

}

}

Kết quả:

Nhap vao 1 thang bat ky:10

Co 31 ngay

2. Break trong Switch dùng để làm gì?

Mục đích của break là để thoát khỏi switch.

Bản chất, switch kiểm tra các trường hợp case một lượt. Nếu như gặp đúng trường hợp đúng, nó sẽ không kiểm tra những case sau nữa. Như vậy, nếu không break, nó sẽ thực hiện luôn những khối lệnh các case sau.

Ví dụ:

import java.util.Scanner;

public class ViDuSwitch {

public static void main(String[] args) {

int m;

Scanner sc = new Scanner(System.in);

System.out.print(“Nhap vao 1 thang bat ky:”);

m = sc.nextInt();

switch (m) {

case 2:

System.out.println(“Co 28 hoac 29 ngay”);

case 1, 3, 5, 7, 8, 10, 12:

System.out.println(“Co 31 ngay”);

default:

System.out.println(“Co 30 ngay”);

}

}

}

Kết quả:

Nhap vao 1 thang bat ky:10

Co 31 ngay

Co 30 ngay