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
위에서 사용된 각 용어에 대한 설명은 다음과 같습니다.
for-each 루프는 컬렉션/배열 요소에 순차적으로 액세스하여 각 요소의 값을 반복 변수에 저장한다는 점에 유의해야 합니다. 다음은 for-each 루프의 흐름도입니다.
알다시피 for 루프와 for-each 루프 사이에는 미묘한 차이가 있습니다. For 루프를 사용하려면 반복 횟수를 미리 지정해야 합니다. 그러나 for-each 루프의 경우에는 그렇지 않습니다. 루프는 컬렉션/배열의 첫 번째 요소부터 마지막 요소까지 반복하며 반복 횟수를 지정할 필요가 없습니다.
유념해야 할 중요한 점은 for-each 루프에 지정된 유형이 컬렉션의 요소 유형과 일치해야 한다는 것입니다. 그렇지 않으면 호환성 문제가 발생하기 때문입니다.
다음은 다양한 예입니다.
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)); } }
출력:
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)); } }
출력:
위 그림에서 볼 수 있듯이 두 루프를 모두 사용하여 출력은 동일합니다.
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); } }
출력:
위에서 언급한 for-each 루프에서 x는 반복마다 배열의 한 요소를 저장하는 반복 변수이며 다음 반복에서 변경됩니다. 첫 번째 반복에서 x는 배열의 첫 번째 요소와 마지막 반복 요소의 마지막 요소를 저장합니다. for 루프와 달리 인덱스를 사용하여 배열 요소에 액세스하고, 각 루프는 반복 변수를 사용하여 요소에 액세스합니다.
반복 변수는 "읽기 전용"이므로 배열 요소의 값을 일시적으로 저장하고 해당 값을 변경해도 원래 배열이 수정되지 않으므로 각 루프에 대해 사용할 때 주의가 필요합니다. 이는 요소를 변경하면 원래 배열이 수정되는 for 루프와 모순됩니다.
배열의 각 요소에 5를 추가하는 예를 생각해 보겠습니다. 다음 예제 코드에서 출력의 차이점을 확인할 수 있습니다.
다음은 조건이 다른 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]+" "); } } }
출력:
원래 배열의 업데이트를 보여주는 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 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+" "); } } }
출력:
원래 배열의 업데이트가 없음을 보여주는 for-each 루프의 출력
위 내용은 Java의 For-Each 루프의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!