Trình biên dịch Java xử lý khối chuyển đổi sau đây như thế nào? Phạm vi của biến 'b' là gì?Chuyển đổi Java: khai báo biến và phạm vi
Lưu ý rằng biến 'b' chỉ được khai báo trong nhánh đầu tiên của câu lệnh switch. Cố gắng khai báo nó trong nhánh thứ hai cũng dẫn đến lỗi biên dịch "biến cục bộ trùng lặp".
int a = 3;
switch(a) {
case 0:
int b = 1;
System.out.println("case 0: b = " + b);
break;
case 1:
// the following line does not compile: b may not have been initialized
// System.out.println("case 1 before: b = " + b);
b = 2;
System.out.println("case 1 after: b = " + b);
break;
default:
b = 7;
System.out.println("default: b = " + b);
}
Lưu ý: mã trên biên dịch với trình biên dịch java 1.6.
Đã trả lời câu hỏi của riêng bạn. – darrengorman