ฉันมีคำถามบ้าๆเกี่ยวกับสวิตช์ 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:พูดค่าตัวแปรท้องถิ่นอาจจะไม่ได้รับการเริ่มต้น