[coding] 코딩 공부하자/[개념정리]

[Java] for문, for each문 비교(switch-case문 장점까지)

찰스_ 2023. 1. 12. 17:16
728x90
반응형

 

for문과 for each(=향상된 for문) 비교 (switch-case문 장점까지)

반복적인 업무를 처리하기 위해 배열 또는 ArrayList 등과 함께 자주 사용되고
for문에서 이용하는 변수는 배열의 인덱스로 겸용되어 쓰이는 경우가 많다.

<for 문의 기본 형식>
 for(초기화식; 조건식; 업데이트식){
      실행부분;
      }

<for each 문의 형식> - 향상된 for문 : 배열을 반복문에 쓸 때 사용
 for(변수타입 변수이름 : 배열이름){
      실행부분;
      }

for문 / for each문(향상된 for문) 차이점 (아래 차이점 고려하여, 상황에 맞게 사용하자)

1. 업데이트식(index) 증감 컨트롤

 ㅇ for문: 수정가능 (index 초기값, 증감범위, 최대값 등 컨트롤 가능)

     예시1) for (int index = 0; index < 10; index++)     : 0부터 10미만 까지 1씩 증가

     예시2) for (int index = 5; index <= 50; index+=5)  : 5부터 50이하 까지 5씩 증가

 ㅇ for each문(향상된 for문): 수정불가 (무조건 1씩 증가)

 

2. 특정 index에 대한 조건문 추가 

 ㅇ for문: 조건문 추가 가능

 ㅇ for each문(향상된 for문): 조건문 추가 불가

 

■ 코드 예시

Int[] intArr = {1,2,3,4,5};
List<String> likeList = new ArrayList<String>();

likeList.add("0.퇴근");
likeList.add("1.휴가");
likeList.add("2.로또1등");
likeList.add("3.노래방가자");
likeList.add("4.여자친구");
				
// for문 : intArr (0부터 1씩 증가)
for(int i=0; i<intArr.length; i++){
	System.out.println( "intArr for문 결과 : " + String.valueOf(intArr[i]) );
}

System.out.println("------------------------");

// for문 : likeList (0부터 2씩 증가)
for(int i=0; i<likeList.size(); i+=2){
	System.out.println( "likeList for문 결과 : " + likeList.get(i) );
	
	if(i == 4){
		System.out.println( "likeList 중 5번째(i==4) 인 조건 추가 : " 
        	+ likeList.get(i) + " 무서운 건 나만 해당됨?" );
	}
}

System.out.println("------------------------");

// for each문(=향상된 for문) 
for(String str : likeList){
	System.out.println( "likeList 향상된 for문 결과 : " + str );
}

 

■ 결 과

intArr for문 결과: 1
intArr for문 결과: 2
intArr for문 결과: 3
intArr for문 결과: 4
intArr for문 결과: 5
------------------------
likeList for문 결과(2씩증가): 0.퇴근
likeList for문 결과(2씩증가): 2.로또1등
likeList for문 결과(2씩증가): 4.여자친구
likeList 중 5번째(i==4) 인 조건 추가: 4.여자친구 무서운 건 나만 해당됨?
------------------------
likeList 향상된 for문 결과: 0.퇴근
likeList 향상된 for문 결과: 1.휴가
likeList 향상된 for문 결과: 2.로또1등
likeList 향상된 for문 결과: 3.노래방가자
likeList 향상된 for문 결과: 4.여자친구

 

 성능 향상을 위한 for문, switch-case문 참고사항

switch-case

  • switch-case 문은 작은 숫자부터 큰 숫자를 비교하는 게 가장 빠르다.
  • case의 수가 많으면 많을수록 switch-case에서 소요되는 시간이 오래 걸린다.

for

  • 메서드 반복 호출을 없애자. (size())
  • 반복 구문에서의 필요 없는 반복을 없애자.

작은 부분이 차지하는 반복 구문이 큰 성능 저하를 가져올 수도 있다는 것을 명심하자.

(출처 : https://goldfishhead.tistory.com/72 중 일부)

728x90
반응형