次のようなifステートメントがいくつかあるプログラムから、奇妙な出力が得られます。
if((m.getLeft(position).state == position.state.wall || m.getLeft(position).state == position.state.border)
&& (m.getBelow(position).state == position.state.open || m.getBelow(position).state == position.state.visited)){
check = true;
}
&& と || の両方があります。同じ if 条件で使用されます。getLeft() のセルが壁または境界線のいずれかであり、かつ getBelow() のセルが開いているかアクセス済みの場合、ブール値のチェックを true にします。
このコードは、私が現在書いている方法で、このチェックを適切に実行しますか? おそらくもっと重要なのは、このようなステートメントを書くのは不適切な形式でしょうか? 二つに分けた方が良いでしょうか?
私が見ている特異性がこれらのステートメントに起因するのか、それとも何か他のものに起因するのかはわかりません.私の質問は、一般的なベストプラクティスに関するものです.
編集:すべての入力に感謝します。私は(あまりにも複雑すぎるのではないかと)疑っていました。
EDIT(1年後、振り返って)if
(上記をより精力的に言い直すために)神の愛のために、上記のステートメントのようなものを書かないでください似たようなコード行を見つけた場合、 occam のカミソリはおそらくプログラミングほど適切ではないことを思い出してください。