Chọn phát biểu đúng cho đoạn mã sau:
int j = 2;
switch (j) {
case 2:
System.out.println("value is two");
case 2 + 1 : System.out.println("value is three");
break;
default:
System.out.println("value is " + j);
break;
}
int j = 2;
switch (j) {
case 2:
System.out.println("value is two");
case 2 + 1 : System.out.println("value is three");
break;
default:
System.out.println("value is " + j);
break;
}
switch (j) {
case 2:
System.out.println("value is two");
case 2 + 1 : System.out.println("value is three");
break;
default:
System.out.println("value is " + j);
break;
}
Trả lời:
Đáp án đúng: D
Đoạn mã được cung cấp sử dụng cấu trúc `switch` trong Java. Ta sẽ phân tích từng lựa chọn:
* **Lựa chọn A:** "Đoạn mã không hợp lệ bởi biểu thức ở dòng 5". Dòng 5 là `case 2 + 1 : System.out.println("value is three");`. Biểu thức `2 + 1` hoàn toàn hợp lệ trong `case` của `switch`. Vì vậy, lựa chọn A sai.
* **Lựa chọn B:** "Biến j trong cấu trúc switch() có thể là một trong các kiểu : byte, short, int hoặc long". Điều này đúng. Biến trong `switch` có thể thuộc các kiểu `byte`, `short`, `int`, `long`, `char`, `enum`, và `String` (từ Java 7 trở đi).
* **Lựa chọn C:** "Kết xuất của chương trình chỉ là dòng : value is two". Vì không có lệnh `break` sau `case 2:`, chương trình sẽ tiếp tục thực hiện các `case` tiếp theo cho đến khi gặp lệnh `break` hoặc kết thúc `switch`. Vì vậy, lựa chọn C sai.
* **Lựa chọn D:** "Kết xuất của chương trình chỉ là dòng : value is two và value is three". Vì không có lệnh `break` sau case 2, cả hai dòng lệnh `System.out.println("value is two");` và `System.out.println("value is three");` sẽ được thực thi. Vì vậy lựa chọn D không đầy đủ. Do đó, đáp án chính xác nhất là đáp án B.





