> Java > java지도 시간 > 반복 변수에 할당해도 Java For-Each 루프의 원래 배열이 변경되지 않는 이유는 무엇입니까?

반복 변수에 할당해도 Java For-Each 루프의 원래 배열이 변경되지 않는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-29 08:59:10
원래의
966명이 탐색했습니다.

Why Doesn't Assigning to the Iteration Variable Change the Original Array in a Java For-Each Loop?

반복 변수 할당이 실패하는 이유

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿