내가 몇 가지를 가지고있는 프로그램에서 몇 가지 독특한 출력을 얻고 경우이 같은 문장 :|| 그리고 && 하나의 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 (년 후, 다시 찾고)는 하나님의 사랑 (위 더 격렬하게 재 작성) 위의 if
문 같은 것을 쓰지 않는다. 유사한 코드 행을 발견하면 occam's razor은 프로그래밍에 적용 할 수있는 곳이 없을 것입니다.
if 문은 매우 복잡합니다. 나는 이것이 이해하기가 더 어렵다고 생각한다. 나는 당신이 필요로하는 실제 해결책이 두 개의 if 문으로 분해하거나, 그러한 합병증을 필요로하지 않는 방법을 리팩터링하는 것이라고 생각한다. – theJollySin
나는 여기에서 복잡성이나 진짜 질문을 보지 못한다. 처음 두 조건 중 하나라도 '참'으로 해결되고 두 번째 조건 중 하나가 두 가지를 해결하면 ... '확인'을 '참'으로 설정합니다. 꽤 기본적인'if' 문입니다. –