Tôi có một câu hỏi điên rồ về công tắc Java.
int key = 2;
switch (key) {
case 1:
int value = 1;
break;
case 2:
value = 2;
System.out.println(value);
break;
default:
break;
}
Tình huống 1 - Khi cả keyhai, nó in thành công giá trị là 2. Tình
huống 2 - Khi tôi định bình luận value = 2về case 2:nó, người ta kêu lên rằng Giá trị biến cục bộ có thể chưa được khởi tạo .
Câu hỏi: Tình
huống 1: Nếu luồng thực thi không đi đến case 1:(khi key = 2), thì làm thế nào nó biết kiểu của biến giá trị là int?
Tình huống 2: Nếu trình biên dịch biết kiểu của biến giá trị là int, thì nó phải đã truy cập vào int value = 1;biểu thức trong case 1:. (Khai báo và Khởi tạo). Sau đó, tại sao nó sqawrk Khi tôi sẽ bình luận value = 2trong case 2:, nói rằng giá trị biến cục bộ có thể không được khởi tạo .