나는 자바 코드를 읽고 있어요, 그리고for 루프는 무엇을 의미합니까?
이 같은 기록 된 앞 루프의이 종류를 보지 못했다for (PoolStaff staff : staffList)
로에 대한 루프를 가지고있다. 등 내가 좋아하는 뭔가를보고 사용 해요 "내가 < 5, 내가 ++에 대한 (INT I = 0,"
사람은 루프?
나는 자바 코드를 읽고 있어요, 그리고for 루프는 무엇을 의미합니까?
이 같은 기록 된 앞 루프의이 종류를 보지 못했다for (PoolStaff staff : staffList)
로에 대한 루프를 가지고있다. 등 내가 좋아하는 뭔가를보고 사용 해요 "내가 < 5, 내가 ++에 대한 (INT I = 0,"
사람은 루프?
그것은 foreach 루프가. 기본적으로는 iteratea 나에게 설명 할 수 컬렉션의 모든 요소를 통해.
이 루프에 대한 향상된 , 또는 각 루프에 대한 라고합니다. 그것은 목록의 각 항목에 대한 의미, 그것에게 임시 이름을주고 그것으로 뭔가.
목록이 primit의 배열 인 경우 예를 들어 int[]
처럼 이름이 지정된 변수는 사본입니다. 사본에 대한 변경 사항은 원본 목록에 반영되지 않습니다. 예를 들어 : 목록 귀하의 질문에 staffList
같은 객체의 배열입니다
int[] myArray = {1, 2, 3};
for(int i: myArray) {
i = i + 1;
}
System.out.println(Arrays.toString(myArray)); // This prints 1, 2, 3!
경우, 명명 된 변수는 원래 객체에 대한 참조이며, 지정된 오브젝트에 대한 변경은 원본에 반영됩니다 명부. 예를 들어 :
Person[] myArray = {new Person("Alice", 23),
new Person("Bob", 20),
new Person("Charlie", 25)};
for(Person person: myArray) {
person.age = 30;
}
// Now every person in my list is 30 years old
당신은 공식 소스, here 각 루프에 대한 자세한 정보를 얻을 수 있습니다.
나는'staff'_라는 변수에서 _reference라고 말하고 싶습니다. –
@Sotirios 실제로 모든 경우에 사실이 아닙니다. 각 루프에 대해 int []와 같은 프리미티브 배열을 반복하는 경우 새 변수는 참조가 아니라 복사본입니다. 그러나 전적으로 정답이 아니므로 제 답변을 업데이트하겠습니다. – Rainbolt
@John 원시 타입 배열에 대한 좋은 점. 많은 사람들이 (나 자신을 포함해서) 그 세부 사항을 글로 표현했을 것입니다. 일반적으로 나는 이런 종류의 질문에 대한 답을 +1하지 않을 것이지만 지옥, 나는 감명 받았다. :) – asteri
이것은 'foreach' 루프 또는 향상된 for 루프라고합니다. 크기를 알 필요없이 읽기 전용 모드로 컬렉션/배열을 반복하는 데 사용됩니다. – Tiny
공정하게, downvoters에게, 정말 구글과 같이 이런 일을하는 것이 어려울 수 있습니다. (정말 특수 문자로 구별되어있어봤을 수는 없습니다). 당신은 일종의 "강화 된 for 루프"또는 초보자가 아닌 것을 알아야합니다. :) – asteri