>Java >java지도 시간 >Java의 For-Each 루프

Java의 For-Each 루프

WBOY
WBOY원래의
2024-08-30 15:25:221219검색

For Each 루프는 JDK 5부터 Java에 도입되었습니다. 컬렉션이나 배열의 모든 요소를 ​​순차적으로 반복하는 것을 목표로 합니다. for-each 키워드를 사용하는 C#과 같은 다른 언어에도 있습니다. 그러나 Java는 C#과 달리 for-each 루프를 구현하는 데에만 키워드 'for'를 사용하지만 그 구문은 기존 for 루프와 다릅니다. 이 for-each 루프는 Java의 향상된 for 루프라고도 합니다.

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

구문:

for(type iter_var : Collection) statement_block

위에서 사용된 각 용어에 대한 설명은 다음과 같습니다.

  1. 'type'은
  2. 객체의 데이터 유형을 나타냅니다.
  3. 'iter_var'는 루프를 반복하면서 컬렉션의 각 값을 저장하는 반복 변수 이름을 나타냅니다.
  4. '컬렉션'은 반복하려는 컬렉션 또는 배열을 지정합니다.
  5. 'statement-block은 루프가 반복될 때마다 실행하려는 명령문 세트입니다.

for-each 루프는 컬렉션/배열 요소에 순차적으로 액세스하여 각 요소의 값을 반복 변수에 저장한다는 점에 유의해야 합니다. 다음은 for-each 루프의 흐름도입니다.

Java의 For-Each 루프

알다시피 for 루프와 for-each 루프 사이에는 미묘한 차이가 있습니다. For 루프를 사용하려면 반복 횟수를 미리 지정해야 합니다. 그러나 for-each 루프의 경우에는 그렇지 않습니다. 루프는 컬렉션/배열의 첫 번째 요소부터 마지막 ​​요소까지 반복하며 반복 횟수를 지정할 필요가 없습니다.

유념해야 할 중요한 점은 for-each 루프에 지정된 유형이 컬렉션의 요소 유형과 일치해야 한다는 것입니다. 그렇지 않으면 호환성 문제가 발생하기 때문입니다.

Java의 For-Each 루프 예

다음은 다양한 예입니다.

1. For 루프

for 루프를 사용하는 사람들의 평균 연령을 찾아보겠습니다.

코드:

public class Main
{
public static void main(String[] args) {
int ages[] = {15, 18, 16, 17, 14, 12, 13, 20, 22, 25};
int sum = 0;
System.out.print("Ages of the group are : "); for (int i = 0; i < 10 ; i++)
{
System.out.print(ages[i]+" "); sum += ages[i];
}
System.out.println("\n Average age of the group = " + (sum/10));
}
}

출력:

Java의 For-Each 루프

2. For-Each 루프

for-each 루프를 사용하여 한 그룹의 사람들의 평균 연령을 찾으려면:

코드:

public class Main
{
public static void main(String[] args) {
int ages[] = {15, 18, 16, 17, 14, 12, 13, 20, 22, 25};
int sum = 0;
System.out.print("Ages of the group are : "); for (int x : ages)
{
System.out.print(x+" "); sum += x;
}
System.out.println("\n Average age of the group = " + (sum/10));
}
}

출력:

Java의 For-Each 루프

위 그림에서 볼 수 있듯이 두 루프를 모두 사용하여 출력은 동일합니다.

Break 문을 사용한 Foreach 루프

break 문을 사용하면 for-each 루프의 반복 횟수를 줄일 수 있습니다. 예를 들어 처음 5개 요소의 합만 구하려면 다음과 같이 break 문을 사용할 수 있습니다.

코드:

public class Main
{
public static void main(String[] args) {
int ages[] = {15, 18, 16, 17, 14, 12, 13, 20, 22, 25};
int ctr = 0, sum = 0;
System.out.print("Ages of the group are : "); for (int x : ages)
{
System.out.print(x+" ");
}
for (int x : ages)
{
if (ctr == 5) break; sum += x;
ctr += 1;
}
System.out.println("\nSum of age of first 5 people of the group = " + sum);
}
}

출력:

Java의 For-Each 루프

위에서 언급한 for-each 루프에서 x는 반복마다 배열의 한 요소를 저장하는 반복 변수이며 다음 반복에서 변경됩니다. 첫 번째 반복에서 x는 배열의 첫 번째 요소와 마지막 반복 요소의 마지막 요소를 저장합니다. for 루프와 달리 인덱스를 사용하여 배열 요소에 액세스하고, 각 루프는 반복 변수를 사용하여 요소에 액세스합니다.

반복 변수는 "읽기 전용"이므로 배열 요소의 값을 일시적으로 저장하고 해당 값을 변경해도 원래 배열이 수정되지 않으므로 각 루프에 대해 사용할 때 주의가 필요합니다. 이는 요소를 변경하면 원래 배열이 수정되는 for 루프와 모순됩니다.

배열의 각 요소에 5를 추가하는 예를 생각해 보겠습니다. 다음 예제 코드에서 출력의 차이점을 확인할 수 있습니다.

다른 조건을 갖는 For 루프

다음은 조건이 다른 for 루프에 대한 설명입니다.

코드:

public class Main
{
public static void main(String[] args) {
int ages[] = {15, 18, 16, 17, 14, 12, 13, 20, 22, 25};
System.out.print("Elements of the array are : "); for (int i = 0; i < 10; i++)
{
System.out.print(ages[i]+" "); ages[i]+= 5;
}
System.out.print("\nNew elements of the array are : "); for (int i = 0; i < 10; i++)
{
System.out.print(ages[i]+" ");
}
}
}

출력:

Java의 For-Each 루프

원래 배열의 업데이트를 보여주는 for 루프의 출력

다양한 조건의 Foreach 루프

다음은 조건이 다른 for 루프에 대한 설명입니다.

코드:

public class Main
{
public static void main(String[] args) {
int ages[] = {15, 18, 16, 17, 14, 12, 13, 20, 22, 25};
System.out.print("Elements of the array are : "); for (int x : ages)
{
System.out.print(x+" "); x += 5;
}
System.out.print("\nNew elements of the array are : "); for (int x : ages)
{
System.out.print(x+" ");
}
}
}

출력:

Java의 For-Each 루프

원래 배열의 업데이트가 없음을 보여주는 for-each 루프의 출력

Java의 For-Each 루프에 대해 기억해야 할 사항

  1. Java의 For-Each 루프는 시퀀스의 배열/컬렉션 요소를 반복하는 데 사용됩니다.
  2. Java의 For-Each 루프는 반복 변수를 사용하여 요소 컬렉션이나 배열을 반복합니다.
  3. 반복 변수를 수정해도 원래 배열/컬렉션은 읽기 전용이므로 수정되지 않습니다.
  4. for-each 루프의 유형은 원래 배열/컬렉션 요소의 유형과 일치해야 합니다.
  5. Foreach 루프는 컬렉션의 모든 요소를 ​​반복하므로 반복 횟수를 지정할 필요가 없습니다.
  6. break 문을 사용하여 for-each 루프를 중지할 수 있습니다.

위 내용은 Java의 For-Each 루프의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:Java의 do-while 루프다음 기사:Java의 do-while 루프