학교를 비유해보자. 1반 학생들이 상담을 받는다고 했을 때, 이 사건에는 다음과 같은 절차가 함축되어 있다고 할 수 있다.
- 1반 학생들을 번호순으로 정렬해서 줄을 세운다.
- 상담받은 학생의 숫자를 기록한다.
- 대기중인 학생과 상담을 한다.
- 상담받은 학생의 수를 1 증가시킨다.
- 총원보다 상담받은 학생의 수가 작다면 3번 절차로 돌아간다.
- 총원과 상담받은 학생의 수가 같다면 상담을 종료하고 업무를 계속한다.
위의 과정을 프로그래밍 언어로 그대로 옮겨보자.
public class ArrayLoopDemo {
public static void main(String[] args) {
String[] members = { "정혜인", "손희정", "이유연" };
for (int i = 0; i < members.length; i++) {
String member = members[i];
System.out.println(member + "이 상담을 받았습니다");
}
}
}
[결과값]
정혜인이 상담을 받았습니다
손희정이 상담을 받았습니다
이유연이 상담을 받았습니다
위의 예제에서 주목해야 할 점은 반복문과 배열을 결합한 부분이다.
반복문을 이용해서 배열 members의 내용을 하나씩 꺼낸 후에 상담 결과를 화면에 출력하고 있다.
배열이란 연관된 정보를 하나의 그룹으로 관리하기 위해서 사용하는데 그 정보를 처리 할 때는 반복문을 주로 이용한다. 반복문과 배열은 매우 밀접한 관계에 있다고 할 수 있다.
배열의 내용을 탐색할 때 for 문을 좀 더 간편하게 사용할 수 있는 방법이 있다.
public class ForeachDemo {
public static void main(String[] args) {
String[] members = { "정혜인", "손희정", "이유연" };
for (String e : members) {
System.out.println(e + "이 상담을 받았습니다");
}
}
}
[결과값]
정혜인이 상담을 받았습니다
손희정이 상담을 받았습니다
이유연이 상담을 받았습니다
위의 예제는 이전 예제와 정확하게 동일하게 동작한다. 하지만 문법적으로는 간결해졌다.
for(String e : members)
위의 구문은 배열 members의 값을 변수 e에 담아서 중괄호 구간 안으로 전달해준다. 반복문의 종료조건이나 종료조건을 위해서 기준값을 증가시키는 등의 반복적인 작업을 내부적으로 감춘 것이라고 할 수 있다. 자바 5.0부터 도입된 기능이다.
References
: https://www.opentutorials.org/course/1223/5373