2013-10-17 4 views

답변

11

가능한 단순화가 표시되지 않습니다. 나는 단지 경고를 무시할 것이다. 이 방법은 다음과 같을 경우 그러나 :


업데이트

if(point.x < minX || point.x > maxX || point.y < minY || point.y > maxY) 
    return false; 
return true; 

이로 변경 될 수 있습니다 심지어

return !(point.x < minX || point.x > maxX || point.y < minY || point.y > maxY); 

또는를 :

return point.x >= minX && point.x <= maxX && point.y >= minY && point.y <= maxY; 

I d 이것이 인간을 위해 "단순화"되어 있는지는 알 수 없습니다.

+0

이것은 사실이었습니다. 나는 if 절 내부의 단순화를 살펴 보았다. 그래서 그걸 찾지 못했습니다. 나는 당신의 마지막 제안에 갔다. 그것은 나에게 더 이해가되었습니다. – kiel814

0

두 개의 if 문으로 분리 해보십시오. 하나는 "x"좌표이고 다른 하나는 "y"입니다.

if(point.x < minX || maxX < point.x) 
    return false; 
else if(point.y < minY || maxY < point.y) 
    return false; 
+0

이것은 OP가 요구하는 것과 동일하지 않습니다. – Smit

3

인 IntelliJ이 가능한 단순화 경고 때마다 자주 (노란색 전구를 클릭하여) 단순화를 수행 할 수 있습니다. 네가 그렇게하면 어떻게 될까?

return new Rectangle(minX, maxX, minY, maxY).contains(point); 

지금까지 부울 대수의 관점에서 단순화, 당신은 마틴의 대답을 찾고해야합니다

+0

내 버전에는 전구가 없었지만 클릭 할 수있는 도구 설명이있었습니다. 감사! – kiel814

+0

고마워 ... 나를 위해 일한다. –

0

어쩌면 당신은 이런 식으로 뭔가를 시도 할 수 있습니다. 실제로, 컴파일러가 자동으로 그것을하기 때문에 그것을 단순화 할 필요조차 없습니다. 예를 들어, !(a && b)!a || !b으로 단순화됩니다. 임시 변수를 작성하고 그 값을 확인하는 대신 각 변수를 개별적으로 검사하는 것이 더 빠르기 때문입니다.