これがばかげた質問かどうかはわかりませんが、答えてみてください。
public static void main(String[] args){
int i=0;
final int x;
if(i==0){
x=1;
System.exit(0);
}
x=2;
}
最終変数 x があります。
値を xi に割り当てるには、値を割り当てる if ステートメントがあり、プログラムを終了します。
これで、最後のステートメントに到達することはないため、このプログラムは論理的にコンパイルされます。
x の値は、if ステートメントに応じて 1 または 2 になります。「if」が true の場合、最後のステートメントには到達せず、false の場合、「x=1」ステートメントには到達しません。
では、なぜ「ローカル」変数が初期化されたというコンパイル エラーが発生するのでしょうか。
編集:
はい、私は明らかに、最終ステートメントを 1 回だけ割り当てることができることを知っています。
私の疑問は、実行中にこれらのステートメントの1つだけに到達するので、そのように見ると、プログラムには割り当てステートメントが1つしかないということでした。