값은

2014-01-11 2 views
0

나는이처럼 보이는이며 매우 기본적인 코드가 사용되지 않습니다 값은

boolean[][] nodes = new boolean[sectionCountX][sectionCountZ]; 
     for(boolean[] n1 : nodes) 
      for(boolean n2 : n1) // complain about unused variable 
       n2 = true; 

나는 사실 이클립스에 N2를 설정하는 것이 사실에도 불구하고 나에게 N2이라고 말해 경고를 제공

사용되지 않았습니다.

나는 카운터 루프를 사용할 수 있음을 알고 있지만이 문제의 원인은 interessted입니다.

+0

을 사용하면 비용이 많이 드는 어떤 조합이없는 무엇을 가지고. 이 코드는 CPU 사이클을 소모하는 것 외에는 아무 것도하지 않습니다. n2의 값을 변경해도 배열에있는 부울 값은 변경되지 않습니다. 변경하려면'n1 [i] = true'를 사용해야합니다. –

답변

2

향상된 for 루프를 사용하여 배열을 초기화하려고합니다. 작동하지 않습니다.

대신 여기서하고있는 일은 로컬 변수를 만들고 초기화하는 것으로 아무 것도 수행하지 않으므로 Eclipse에서 경고합니다.

내가 대신 Arrays.fill()를 사용하는 것이 좋습니다 :

boolean[][] nodes = new boolean[sectionCountX][sectionCountZ]; 
for (boolean[] n1 : nodes) { 
    Arrays.fill(n1, true); 
} 
+0

그것을 던지십시오. 나는 레퍼런스와 카피를 뒤섞었다. 감사 ;) – Chris

0

used이라는 용어는 평가의 의미로 사용됩니다. n2을 평가하지 마십시오. 예를 들어, n2 기본적으로 쓸모가 있기 때문에 그것은 당신에게 힌트/경고를주고

System.out.println(n2); 

할, 그래서 왜 심지어 자원을 선언하고 할당 낭비하지 말라?

nodes 배열의 각 부울 값을 true으로 설정하려는 경우 작동하지 않습니다.