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ả key
hai, nó in thành công giá trị là 2. Tình
huống 2 - Khi tôi định bình luận value = 2
về 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 = 2
trong case 2:
, nói rằng giá trị biến cục bộ có thể không được khởi tạo .