반복 변수 할당이 실패하는 이유
Java의 foreach 루프에서는 반복 변수에 할당하면 기본 데이터가 수정된다는 것이 일반적인 오해입니다. 다음 코드를 고려하십시오.
String boss = "boss"; char[] array = boss.toCharArray(); for (char c : array) { if (c == 'o') { c = 'a'; } } System.out.println(new String(array)); // Prints "boss", not "bass"
예기치 않게 루프에서 'o'가 'a'로 명백히 변경되었음에도 불구하고 출력은 "boss"로 유지됩니다. 이 동작은 foreach 루프의 특성에서 비롯됩니다.
foreach를 사용할 때 반복 변수는 배열 요소의 복사본입니다. 반복 변수에 할당하면 배열 요소 자체가 아닌 복사본만 수정됩니다. 기본 배열을 업데이트하려면 명시적인 수정이 필요합니다.
for (int i = 0; i < array.length; i++) { if (array[i] == 'o') { array[i] = 'a'; } }
이 수정된 코드는 실제 배열 요소에 할당되어 'o'를 'a'로 의도된 수정을 보장합니다.
In 요약하면 foreach 루프는 컬렉션 반복에 대한 편의를 제공하지만 반복 변수에 대한 할당은 로컬 복사본에만 영향을 미칩니다. 지속적인 수정을 위해서는 명시적인 배열 인덱싱이 필요합니다.
위 내용은 반복 변수에 할당해도 Java For-Each 루프의 원래 배열이 변경되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!