次をコンパイル、実行すると、変数a,b,c,dの値はどうなるでしょうか? 1: int a = 1, b = 2, c, d; 2: d = a++ + ++b - --c; A.. a=1、b=2、c=−1、d=4 B. a=2、b=2、c=−1、d=5 C. a=2、b=1、c=0、d=2 D. 2行目でコンパイルエラーになる。 |
解説
式が複雑な場合は、括弧を付けてみましょう
d = (a++) + (++b) − (−−c);
式に変数cが使われていますが、宣言をよく見てください。cには何も値が入っていませんね。cは明らかにメソッド内で使われる局所変数なので、何も値を入れずにいきなり使うと、コンパイルエラーになります。一生懸命計算した方のために次の問題2が用意されています。
正解 D
参考 読み物Java 第12章 一方通行と飛び出し注意
次をコンパイル、実行すると、変数a,b,c,dの値はどうなるでしょうか? 1: int a = 1, b = 2, c = 3, d; 2: d = a++ + ++b - --c; A.. a=1、b=2、c=−1、d=4 B. a=2、b=3、c=2、d=2 C. a=2、b=1、c=0、d=2 D. 2行目でコンパイルエラーになる。 |