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
반응형
'[coding] 코딩 공부하자 > [개념정리]' 카테고리의 다른 글
[Java] String클래스에서 특수문자 구현(replaeAll, replace 주의사항 까지) (0) | 2023.01.27 |
---|