【Java Silver試験対策】ショートサーキット演算子の基本と使い方

ショートサーキット演算子

「&&」や「||」のことです。

例えば、条件Aと条件Bがあったとします。
「A && B」でAの値がfalseだった場合、Bの値がtrueかfalseかによらず、「A && B」全体では、常にfalseとなります。そこで、Aがfalseと評価された場合は、Bの評価を省略します。
「A & B」と記述した場合は、AもBも評価されます。

基本的に、&&を使っても&を使っても演算結果には影響ありませんが、例えば、

int a = 1;
int b = 3;

(a > b) && (++b > 1)

という演算をする場合、(a > b)はfalseなので、右辺は評価されず、したがってbの値はインクリメントされないので3のままです。しかし、

(a > b) & (++b > 1)

だった場合は、左辺も右辺も評価されるので、bの値がインクリメントされ、4になります。

また、ショートサーキット演算子はNullPointerExceptionを発生させないために利用できます。例えば、String型変数strに対して、

if((str != null) && (str.length() <= 50)) {…

と書くことで、strという変数がnullだった場合は、左辺がfalseとなり、右辺が評価されないので、NullPointerExceptionが発生しません。