JAVA/JAVA2

[java2] #12 - 빠른(향상된) for문

yoonddo 2022. 7. 19. 16:43
빠른 for문
(향상된for문, forEach문)
for(자료형 변수명 : 컬렉션){
       변수로 컬렉션 내부 요소를 하나씩 꺼내         오면서 반복
}

 

 - 단순하게 모든 요소들을 순회할 때 사용하는 것이 좋다. 순서가 중요한 경우 기존 for문을 써야한다.

 - 배열처럼 여러 원소로 이루어진 집합의 모든 원소에 대해 특정 작업을 반복하기 위해 사용한다.

 - ArrayList 같은 배열 원소 출력에 자주 사용한다.

 - 간편하고 가독성 좋은 코드 작성이 가능하고 for문 조건식에서의 배열 인덱스 문제를 해결한다

   (ArrayIndexOutOfBoundsException 예외를 피할 수 있다)

 - 단점은 인덱스를 사용하지 못하고 배열이나 ArrayList값을 사용할 수 있지만 수정할 수 없다는 점이 있다.


[일차원 배열에서의 사용 예시]

String[] arr = {"1","2","3","4","5"};
 		
for(String s : arr) {
		  
 System.out.println(s);
		  
}

[이차원 배열에서의 사용 예시]

package day04;

import java.util.ArrayList;

public class School {
	public static void main(String[] args) {
		int[][] arrScore = {
				{10, 20, 30},	
				{11, 25, 39},	
				{12, 26, 38},	
				{13, 27, 37},	
				{14, 28, 36}	
		};

		int total = 0;
		double avg = 0.0;
		//빠른 for문을 사용해서 학생별 평균과 총합을 출력
		System.out.println("=============================");
		for(int[] arScore : arrScore) {
			total = 0;//한학생마다 총점초기화
			for(int score : arScore) {
				total += score; //2차원 배열이기 때문에 빠른for문을 두번 쓴다.
			}
			avg = (double)total / arScore.length;
			avg = Double.parseDouble(String.format("%.2f", avg));
			System.out.println("총점 : " + total + "점");
			System.out.println("평균 점수 : " + avg + "점");
			System.out.println("=============================");
		}
	}
}

결과


[3차원 배열에서의 사용 예시]

String[][][] arr = {{{"1-1","1-2","1-3","1-4","1-5"},{"2-1","2-2","2-3","2-4","2-5"}},
					{{"3-1","3-2","3-3","3-4","3-5"},{"4-1","4-2","4-3","4-4","4-5"}}};
 		
for(String[][] arrtop : arr) {
	for(String[] arrs : arrtop) {
		for(String s : arrs) {
			System.out.println(s);
		}
	}
}

[구구단 출력 예시]

class Play{
void gugu(int...args){
    int result;
    for(int dan : args){ // 입력받은 단까지의 출력을 위해 향상된 for문 사용 
        for(int i =1; i<=9;i++){
            System.out.println(dan +"X"+i +"="+(dan*i));
        }
        System.out.println();
    }
}
}

public class gugudan{
public static void main(String[] args) {
Play g = new Play();
g.gugu(2,5,9);
}
}