Java最近全然触ってないなと思い、Web上のJavaの記事やってはいけないJavaプログラミングを読んでいました。そこでReturn文に&&が使われているのを初めてみました(大した経験ないけど)。
こんな使い方もするんだと思いつつすぐには理解できず。
以下記事からの抜粋です。
class CDTitle {
Artist artist;
Label label;
List songs;
Date saleDay;
int price;
String name;
public boolean equals(Object o) {
if(o == null || !o.getClass().equals(CDTitle.class))
return false;
CDTitle t = (CDTitle)o;
return
artist.equals(t.artist) &&
label.equals(t.label) &&
songs.equals(t.songs) &&
saleDay.equals(t.saleDay) &&
price == t.price && name.equals(name);
}
}
Return文で&&や||はもしかしてよく使うのかなと疑問に思い調べてみました。
※&&と||は論理演算子です。&&はANDの意味があり、|| はor(または)の意味があります。
&&や|| が使われる時
&&や||が使われている場合returnではboolean値(true/false)をreturnするようです。
書き換えてみるととてもわかりやすいです。
以下のようなreturnがあるとします。
return (subTree(t1.left, t2) || subTree(t1.right, t2));
そして上記の文は以下のように書き換えることができます。
final boolean result = subTree(t1.left, t2) || subTree(t1.right, t2);
return result;
見てみれば単純、先にbooleanの値を変数に渡すか、returnに直接渡すかの違いだったんですね。
※&&も同様です。
わかってしまえばそんなに難しく考えることでもなかったみたいですね。
見たことないコードをみかけてもすぐ理解できるようになりたいものです。
■参考サイト
Java && || in RETURN statements?
https://stackoverflow.com/questions/21556993/java-in-return-statements