if 문에 대한 논리가 상당히 복잡합니다. 내가 현재 사용하고 있습니다 : boolOne, boolTwo 및 boolThree는 논리 연산이다C++ 중첩 된 If 문 읽기 어려움
if(numerical_evaluation) {
if ((!boolOne && boolTwo) || !boolThree){
//do stuff
}
}
(아마도 x < y
또는 'myObject-> getBool'등).
||
조건을 세 번째 if
문 내에 중첩하지 않으면이 방법을 쉽게 읽을 수있는 방법을 모른다.
내가 어려움을 겪고있는 이유는 or
연산자가 제 3의 if
진술서가 보증 된 것처럼 보이기 때문입니다.
하나의 옵션을 사용하면됩니다.
또는, 내가
같은 뭔가를 할 수if(x <= y) {
bool boolFour = false;
if ((!boolOne && boolTwo))
boolFour = true;
if (boolFour || !boolThree){
//do stuff
}
}
어쩌면 하나의 반환 값으로 모든 또는 조합 유효성을 검사 할 수있는 별도의 기능을?
또는 코드를 재구성하려는 시도가 필요하지는 않습니다. 상당한 시간이 걸릴 수 있습니다.
내 질문 : 복잡 if
질문 포맷하는 가장 좋은 방법은 무엇입니까 - 단지 if (!A && B && C)
변화보다 더 복잡한 평가를 포함? ||
문을 &&
문과 함께 한 행에 포함 시키면 상황이 제대로 읽을 수 없게됩니다 (특히 boolOne, boolTwo 등 복잡한 평가가있는 경우). - Best way to format if statement with multiple conditions에서 동일한 원칙을 적용하십시오 - 여기에도 적용되거나 다양한 논리 연산자를 사용할 때 근본적인 차이점이 있습니까?
[Programmers.SE] (http://programmers.stackexchange.com/)에 더 적합 할 것입니다. – ildjarn
왜 읽을 수 없습니까? 이것은 완벽하게 읽을 수 있습니다 ... – ForEveR
이것은 주관적이며 아마도 닫힙니다. 개인적으로 필자는 논리를 설명 함수로 캡슐화하기를 원하므로 마지막 문장은'if (HasAccess() && IsEditable()) {...'과 같습니다. – tenfour