Java - for each문

컴퓨터/Java

728x90
반응형

for each 문

자바 언어에서는 J2SE 5.0 이상의 버전부터 for each문이라는 문법 스타일을 제공합니다. 다양한 프로그래밍 언어에서 이러한 형태의 반복문 문법을 사용하고 있습니다. 기존에 알고 있던 C 스타일의 for문과 반복을 한다는 개념은 같지만 표현방법이 다르기 때문에 한번 비교하고 알아보도록 하겠습니다.

 

기존의 for문

물론 Java 언어에서도 기존의 for문의 형태도 사용이 가능합니다. 아래와 같은 예제를 가지고 

for문과 for Each문을 비교해 보도록 하겠습니다.

class Student{
	String name;
	int point;
}

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Student[] students = new Student[10]; 
		for(int i = 0 ; i < students.length ; i++) {
			students[i] = new Student();
			students[i].name = "이름"+i;
			students[i].point = i+10;
		}
		
		for(int i = 0 ; i < students.length ; i++) {
			System.out.println(students[i].name + "의 점수 : "+students[i].point);
		}

	}

}

for each문 사용해보기

사용 방법은 for문과 유사합니다.

for(꺼낼 자료형 이름 : 반복할 대상)

// 예시
int numbers[100];
for(int number : numbers)
{}

위와 같이 numbers라는 배열을 대상으로 해서 인덱스를 가지고 표현하는 것이 아닌 for문이 도는동안 numbers에서 순서대로 하나씩 꺼내 왔어 쓰는 방식의 표현 법입니다. 기존의 for문을 이용한 소스코드를 for each문으로 사용해 보도록 하겠습니다.

 

class Student{
	String name;
	int point;
}

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Student[] students = new Student[10];
		/*
		for(int i = 0 ; i < students.length ; i++) {
			students[i] = new Student();
			students[i].name = "이름"+i;
			students[i].point = i+10;
		}
		
		for(int i = 0 ; i < students.length ; i++) {
			System.out.println(students[i].name + "의 점수 : "+students[i].point);
		}
		*/
		int count = 0;
		for(Student student : students) {
			
			student = new Student();
			student.name = "이름"+count;
			student.point = count+10;
			count++;
		}
		
		for(Student student : students) {
			System.out.println(student.name + "의 점수 : "+student.point);
		}

	}

}

위처럼 변경이 가능합니다. 인덱스를 참조하는 표현이 아니고 정의한 이름으로 하나씩 꺼내어 오는 표현이기 때문에 더 직관적인 표현이 가능합니다. 물론 익숙한 문법으로 사용해도 무방하나, 이런 문법이 있다는 것도 익히고 있어야만 다른 사람들의 소스코드를 보기 쉬울 것입니다.

728x90
반응형

'컴퓨터 > Java' 카테고리의 다른 글

Java - 제네릭(Generic)  (0) 2021.10.06
Java - 컬렉션프레임워크(CKP)  (0) 2021.10.05
Java - 클래스 형변환과 장점  (0) 2021.09.03
Java - 인터페이스(Interface)  (0) 2021.08.19
Java - 추상화 클래스  (0) 2021.08.15

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :