본문 바로가기

5. 참조타입

5.6.10_ 향상된 for문

-배열을 반복실행하기 위해 for(int i; i<xxx.length; i) 를 항상 써왔지만 향상된 for문을 쓰면 더 간편하게 쓸수 있다. 

-자바5부터 지원

 

for (타입 변수 : 배열이름){
	//실행문
 }

*실행원리

1. for문이 처음 실행 될 때, 배열에서 가져올 첫 번째 값이 존재하는지 평가한다. 

2. 가져올 값이 존재하면 해당 값을 변수에 저장한다. 

3. 실행문을 실행한다. 

4. 다시 위로 가서 배열에 가져올 다음 값이 존재하는지 평가한다

...

 


package sec06.exam08_advanced_for;

public class AdvancedForExample {
	public static void main(String[] args) {
		int[] scores = { 95, 71, 84, 93, 87 };
		
		//향상된 for문을 이용한 점수 총합 구하기
		int sum1 = 0;
		for (int score : scores) {
			sum1 += score;
		}
		System.out.println("(향상된 for문)점수 총합 = " + sum1);
		
		//평균 구하기
		double avg = (double) sum1 / scores.length;
		System.out.println("점수 평균 = " + avg);

		//그냥 for문 구하기 
		int sum2 = 0;
		for(int i = 0; i<scores.length; i++) {
			sum2 += scores[i];
		}
		System.out.print("(일반 for문) 점수 총합: " + sum2);
	}
}

실행결과:

(향상된 for문)점수 총합 = 430
점수 평균 = 86.0
(일반 for문) 점수 총합: 430


2차원 배열을 향상된 for문으로 출력

public class Exercise08 {
	public static void main(String[] args) {
		int[][] array = { 
				{95, 86},
				{83, 92, 96},
				{78, 83, 93, 87, 88}
		};	

		int sum = 0;
		double avg = 0.0;

		int count = 0;
		for(int[] i : array) {
			for(int j : i) {
				System.out.print(j + ", ");
			}	
			System.out.println();
		}
	}
}

 

실행결과:

95, 86, 
83, 92, 96, 
78, 83, 93, 87, 88, 

'5. 참조타입' 카테고리의 다른 글

5.7.2_열거 타입 변수  (0) 2020.05.02
5.7.1 열거타입 (enumeration type)  (0) 2020.05.01
5.6.8_객체를 참조하는 배열  (1) 2020.04.30
5.6.7_다차원 배열  (0) 2020.04.30
5.6.6_커맨드 라인 입력  (0) 2020.04.30