활동/호기심

for문과 foreach문은 어떨 때 쓰면 좋을까

ByeongJun 2023. 9. 1. 13:12
반응형
public class Byungjun {

	// getMembers 메서드: 멤버 이름을 담은 배열을 반환
	public static String[] getMembers() {
		String[] members = {"병준", "성호", "민수" };
		return members;
	}

public static void main(String[] args) {
		// getMembers 메서드 호출하여 멤버 이름 배열 획득
		String[] members = getMembers();

	}
}

 

클래스 정의 후 getMembers()는 String 배열을 반환하는 static(정적) 메서드이다.

하드코딩된 멤버 이름들을 배열로 생성하고 반환한다.

 

String[] members = getMembers();

getMembers() 메서드를 호출해 반환된 배열을 members 배열에 저장한다. 

 

 

 

배열에 있는 멤버를 출력하려고 할 때 for문 또는 foreach문을 사용하면 

getMembers() 메서드로부터 멤버 이름 배열을 얻어와 요소를 하나씩 출력한다. 

 

 

 

public class Byungjun {

	public static String[] getMembers() {
		String[] members = {"병준", "성호", "민수" };
		return members;
	}

public static void main(String[] args) {
		String[] members = getMembers();
		
                // Using a for loop to print array elements
		for (int i = 0; i < members.length; i++) {
			System.out.println(members[i]);
		}
		
		// Using a foreach loop to print array elements
		for (String member : members) {
			System.out.println(member);
		}
	}
}

 

위의 코드에서 for문과 foreach문을 추가했다.

 

  • for (int i = 0; i < members.length; i++) {
       - for문을 사용해 members 배열의 각 요소를 인덱스(i)를 이용해 접근한다.
  • System.out.println(members[i]);
       - members[i]로 해당 멤버 이름 출력

 

  • for (String member : members) {
       - foreach문을 사용해 members 배열의 각 요소를 직접 (member 변수) 접근해 출력
  • System.out.println(member);
       - member 변수는 배열의 각 요소 값을 가리킴

 

 

장단점

  • 인덱스를 이용해 배열 요소에 접근하므로, 요소의 인덱스가 필요한 경우에 유용
  • 요소에 대한 수정이 필요한 경우 유리
  • 배열의 모든 요소를 반드시 순서대로 순회해야 할 때 적합
  • 반복 횟수가 중요한 경우 유용

 

  • 코드가 더 간결하며 높은 가독성
  • 인덱스가 필요하지 않으며, 요소 자체에 직접 접근
  • 배열의 순서대로 모든 요소를 순회하는 경우 유용
  • 요소를 수정하지 않고 읽기만 하는 경우 적합

 

 

어떤 것이 더 좋은지는 코드의 목적과 상황에 따라 다르다.

- 수정이 필요하거나 인덱스가 필요한 경우 for문

- 단순한 순회 및 읽기 작업에는 foreach문

반응형