ฉันมีคำถามบ้าๆเกี่ยวกับสวิตช์ Java
int key = 2;
switch (key) {
case 1:
int value = 1;
break;
case 2:
value = 2;
System.out.println(value);
break;
default:
break;
}
กรณีที่ 1 - เมื่อkey
สองมันประสบความสำเร็จพิมพ์ค่าเป็น 2
กรณีที่ 2 - เมื่อฉันจะแสดงความคิดเห็นvalue = 2
ในcase 2:
มัน squawks บอกว่าค่าตัวแปรท้องถิ่นอาจจะไม่ได้รับการเริ่มต้น
คำถาม:
สถานการณ์ที่ 1: หากโฟลว์การดำเนินการไม่ไปที่case 1:
(เมื่อ the key = 2
) จะรู้ได้อย่างไรว่าประเภทของตัวแปรค่าเป็นint
อย่างไร
สถานการณ์ที่ 2: หากคอมไพลเลอร์ทราบชนิดของตัวแปรค่าเป็นint
ดังนั้นคอมไพเลอร์จะต้องเข้าถึงint value = 1;
นิพจน์ในcase 1:
(การประกาศและการเริ่มต้น) แล้วทำไมไม่ได้ sqawrk เมื่อฉันกำลังจะไปแสดงความคิดเห็นvalue = 2
ในการcase 2:
พูดค่าตัวแปรท้องถิ่นอาจจะไม่ได้รับการเริ่มต้น