Java
[Java] for each문
아몬드맛빼빼로
2024. 4. 17. 23:45
반응형
for문과 비교
아래 코드블록을 보면
//for 문
int[] age = {15, 19, 66, 7};
for (int i = 0; i < 4; i++) {
System.out.println(i + "번째 사람의 나이는" + age[i] + "살 입니다.");
}
//for each 문
int[] age = {15, 19, 66, 7};
short i = 1; //위 for문에서 사용한 변수 'i'가 사라졌기 때문에 이를 대체하는 변수를 선언
for (int n:age) {
System.out.println(i + "번째 사람의 나이는" + n + "살 입니다.");
i++; //for문 예시에서 사용한 변수 'i'의 기능을 대체함
}
for문은 for(초기값;조건식;증감식)의 구조로 작성하지만 for each문을 사용하면 for(값을 받아줄 변수:사용할 자료구조)의
형태로 작성한다. 세부적인 기능 차이는 아래서 ↓
for each문의 기능
위의 예제를 참고해 for each문을 하나하나 뜯어보자면
for (int n:age) | 값을 받아줄 변수로 자료구조에서 받아온 값을 저장함 |
for (int n:age) | 배열,List,Vector 등을 사용가능하며 배열을 예로 들자면 4칸 짜리 배열이 저 자리에 들어갔을때에 for문을 총 4번 실행함 |
'for문과의 비교'에서 살펴본 코드블록의 실행결과는
1번째 사람의 나이는15살 입니다.
2번째 사람의 나이는19살 입니다.
3번째 사람의 나이는66살 입니다.
4번째 사람의 나이는7살 입니다.
다음과 같이 나온다.
즉, 배열 age에 '15,19,66,7'이 저장되어 있었으므로 배열의 크기인 '4번' 반복하고 변수 n에 한번 반복될 때마다 다음 배열의 칸에 있는 값을 저장한다.
다른 예제를 보자면
String[] name = {"홍길동", "전우치", "도깨비", "아인슈타인", "외계인"};
for (String Pne:name) {
System.out.println("그의 이름은 " + Pne);
}
String으로 배열을 선언하고 문자열을 저장해서 출력은
그의 이름은 홍길동
그의 이름은 전우치
그의 이름은 도깨비
그의 이름은 아인슈타인
그의 이름은 외계인
이런 식으로 된다.