Java言語の基礎 part3
演算子の優先順位
-, ==, = の順で評価される。
intに直接 - の指定もあり。
booleanに==で評価した結果を代入するのもアリ。
||演算子(または)と&&演算子(かつ)
Integer obj = null; if(/* FIXME */){ System.out.println("OK"); } FIXME /* 1 */ obj != null || obj.intValue() == 10 /* 2 */ obj != null && obj.intValue() == 10 /* 3 */ obj == null || obj.intValue() == 10 /* 4 */ obj == null && obj.intValue() == 10短絡的な評価
&&は、片方の計算を終えて false であればもう一方の計算は行わない。
は、片方の計算を終えて true であればもう一方の計算は行わない。
.intValue()を計算した場合、objはnullなのでNullPointerExceptionが
発生してしまうので、片方で抜けられるものを選ぶ。
よって、正解は、2 と 3 になる。
メンバ変数の初期化
メンバ変数は、何も指定がない場合は、決められた値で初期化される。
boolean→false など。
if の中で代入した場合は、
代入後の値を用いて、演算される。boolean b = true; if( b = false){ System.out.println("if is selected."); } else { System.out.println("else is selected.");else is selected.
が出力される。