09/05/25 23:21:22
条件分岐について質問です。
例えば
class hoge{ bool flag; int x ; int y };
hoge a , b ,c;があるとして
flagがtrueのものがひとつのときはそれを、複数のときは距離が近いものを取得したい場合
if( a.flag && !b.flag && !c.flag ) return a;
else if( !a.flag && b.flag && !c.flag) return b;
else if( !a.flag && !b.flag && c.flag) return c;
else if( a.flag && b.flag && !c.flag){
if( distance(a.x, a.y) < distance(b.x, b.y)
return a;
return b;
}
....
else if( a.flag && b.flag && c.flag){
if( distance(a.x,a.y) < distance(b.x,b.y) ){
if( distance(a.x,a.y) < distance(c.x,c.y)
return a;
return c;
}else if(.................
}
...........
こんな感じにたった3つでもとんでもなく条件分岐が増えてしまうのですが、
もう少し簡潔な分岐の仕方があったら教えて頂きたいです。