단순히 같은 우선 순위를 평가하고 사용하는 방법에 대해 걱정 중지 할
: 나는 1-100 이었다는 것을 여기에 있으리라 믿고있어
for (int i = 1; i <= 100; i++) {
if ((i % 42) == 0) continue;
if ((i % 6) == 0) println (i);
if ((i % 7) == 0) println (i);
}
을 포함 된 범위 인 경우 <
대신 <=
을 사용해야합니다. 100이 6이나 7로 나눌 수 없기 때문에 귀하의 구체적인 경우는 중요하지 않습니다.
맞춰보세요. 적절한 최적화 컴파일러 (JIT 포함)는 결국 다른 모든 가능성과 동일한 코드를 생성하게됩니다. 그리고 비록 그렇지 않더라도,이 함수를 큰 숫자로 호출하지 않는 한 상관 없습니다. 번. 또는, 더 나쁜 아직, 당신이해야 리스프 같은 것은이
:-) 제대로 작동 얻을 그것을로 설정하는
if (i % 6 == 0 || i % 7 == 0 && i % (6 * 7) != 0) ...
을 :
나는 그 작은 조금 더 읽기보다는 생각
염두에 하나의 가능성을 유지 - 당신이 6, 7 특정한 경우에, (일곱)가보다 효율적으로 만들기 위해 루프를 변경할 수 있습니다, 따라서 :
for (int i = 7; i <= 100; i += 7)
if ((i % 6) != 0)
println (i);
이 7 만 체크 배수에 for
루프 자체를 사용하고 그들이 하지도 6
Java 운영자 우선 순위 : http://java.sun.com/docs/books/tutorial/java/nutsandbolts/operat ors.html # nutsandbolts-precedence –
차가움. 감사! 실수로 괄호를 쓰지 않고 내 머리 속에있는 세 가지 주장을 분리했다. – Joel
당신은'http : //www.joelonsoftware '와 같은 조엘이 아니다.com /', right –