다음 문을 사용하여 Vector2D가 상자 안에 있는지 확인하고 IntelliJ에서 경고문을 표시합니다. "if 문을 단순화 할 수 있습니다."Java : if 문을 단순화 할 수 있습니다 (상자에 점이 들어 있음)
if(point.x < minX || point.x > maxX || point.y < minY || point.y > maxY)
return false;
어떻게 간단하게 할 수 있습니까?
다음 문을 사용하여 Vector2D가 상자 안에 있는지 확인하고 IntelliJ에서 경고문을 표시합니다. "if 문을 단순화 할 수 있습니다."Java : if 문을 단순화 할 수 있습니다 (상자에 점이 들어 있음)
if(point.x < minX || point.x > maxX || point.y < minY || point.y > maxY)
return false;
어떻게 간단하게 할 수 있습니까?
가능한 단순화가 표시되지 않습니다. 나는 단지 경고를 무시할 것이다. 이 방법은 다음과 같을 경우 그러나 :
업데이트
는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 이것이 인간을 위해 "단순화"되어 있는지는 알 수 없습니다.
두 개의 if 문으로 분리 해보십시오. 하나는 "x"좌표이고 다른 하나는 "y"입니다.
if(point.x < minX || maxX < point.x)
return false;
else if(point.y < minY || maxY < point.y)
return false;
이것은 OP가 요구하는 것과 동일하지 않습니다. – Smit
인 IntelliJ이 가능한 단순화 경고 때마다 자주 (노란색 전구를 클릭하여) 단순화를 수행 할 수 있습니다. 네가 그렇게하면 어떻게 될까?
return new Rectangle(minX, maxX, minY, maxY).contains(point);
지금까지 부울 대수의 관점에서 단순화, 당신은 마틴의 대답을 찾고해야합니다
내 버전에는 전구가 없었지만 클릭 할 수있는 도구 설명이있었습니다. 감사! – kiel814
고마워 ... 나를 위해 일한다. –
어쩌면 당신은 이런 식으로 뭔가를 시도 할 수 있습니다. 실제로, 컴파일러가 자동으로 그것을하기 때문에 그것을 단순화 할 필요조차 없습니다. 예를 들어, !(a && b)
은 !a || !b
으로 단순화됩니다. 임시 변수를 작성하고 그 값을 확인하는 대신 각 변수를 개별적으로 검사하는 것이 더 빠르기 때문입니다.
이것은 사실이었습니다. 나는 if 절 내부의 단순화를 살펴 보았다. 그래서 그걸 찾지 못했습니다. 나는 당신의 마지막 제안에 갔다. 그것은 나에게 더 이해가되었습니다. – kiel814