Java chapter 8 条件を書くための演算子⑤
今日は論理演算子の短絡評価からはぃめていきます。
6.論理演算子の短絡評価
長い関係式を途中まで評価したとき、それ以降評価しなくてもtrueかfalseがわかることがあります。
その時に式の評価をやめてしまうのが短絡評価。
種類によっては短絡評価をするものとしないものがあります。
次のように、xが0でyも0の場合、 x≠0 ならyが何であろうと式の値はfalseです。
式は左から評価されます。
x≠0と分かった時点で式がfalseに確定し、yの値を調べる必要がなくなります。
&&演算子はそのような検査の省略を行います。これを短絡評価といいます。
次の例題で見ていきます。
ちょっとプログラムが見にくいので
package sample;
public class Input {
public static void main(String[] args){
int x=3, y=3;
System.out.println(x++ == 0 && y++ == 0);
System.out.println("x="+x+"/y="+y);
}
}
初期値は共に3。
5行目で++が付いていて後置なので実行後値が増えます。
増えるのはこの場合xの値だけですね。
実行結果を見るとxは1増えて4となりyは3のまま
x=4/y=3となっているのでyは評価されませんでした。
yの値もチェックするように書き換えてみます。
package sample;
public class Input {
public static void main(String[] args){
int x=3, y=3;
System.out.println(x++ == 0 & y++ == 0);
System.out.println("x="+x+"/y="+y);
}
}
&&演算子は効率の良い演算子ですが、&演算子は短絡評価を行わずyの値もきちんとチェックします。
実行結果は次のようになります。
で、普通は&は使わず&&(短絡評価)を使います。
または、の場合も同じですが、xが3でyも3の場合、 x==3 ならyが何であろうと式の値はtrueです。
|の場合はこのようになります。
普通は|は使わず||を使います。
ここまでご覧いただきありがとうございました。
BY おこ助
参考書は______________________________
新わかりやすい Java
川場 隆 Kawaba Takashi
秀和システム
この記事が気に入ったらサポートをしてみませんか?