質問: stdIn.nextInt(); stdIn.close(); // ←こう書く if (n > 0) System.out.println("正です。"); else if (n < 0) System.out.println("負です。"); else System.out.println("0です。"); } } ``` この違いは何でしょうか。 例文2と例文3で、解放のタイミングは同じように見えます。 例文2は、何をもってエラーと言われるのか分かりません。 ご教授よろしくお願いします。
回答: 例文2では、変数nが**tryブロックの中**で宣言されています。 **if-elseはtryを抜けた後にある**ため、nのスコープ外になり、参照することができません。