07
25
728x90

지금까지 프로그래밍 언어들 몇 개를 공부하면서 항상 같은 형태의 for문을 사용했었다.

 

그러다 이번에 코딩테스트 문제를 풀며 나의 코드와 다른 사람들의 코드를 비교하는데 내가 썼던 방식의 for문과 다른 모양의 코드를 보고 신기해서 찾아서 공부 해 보고 정리하기로 했다.

 

다른 형태의 for문의 설명에 앞서 몇 가지 알아둘 내용을 적어보자면

1. JDK1.5버전 이상부터 지원되는 형태이다.

2. for문 안에 들어가는 변수는 지역변수로 인식된다.

3. 배열등의 인덱스를 점차 증가시키며 알아서 처리한다.

4. 그러므로 사용해야 할 것은 배열이나 리스트 등 여러 원소를 담을 수 있는 자료형이어야 한다.

 

원래 배웠던 for문은 아래와 같은 방식이다.

 

 

for문의 순서는

1. 초기식에 있는 변수를 초기화해주고

2. 조건식이 참이라면

3. 반복될 코드를 실행하고

4. 증감식에 따라 변수의 값을 변경한 다음

5. 2~4를 반복하며 조건식이 거짓이라면 for루프를 빠져나온다.

 

위의 코드를 for문 순서에 따라 해석해보면

array[0] ~ array[4]까지 1 ~ 5의 값이 순차적으로 출력된다.

 

하지만 향상된 for문의 형태는

 

 

위와 같은 형태로 평소 써왔던 for문과 괄호 안에 들어가는게 다르지만 출력값은 똑같다.

 

: 를 기준으로 왼쪽에 임시로 사용할 변수를 선언해준다. 이는 지역변수로 인식한다.

오른쪽에는 배열이나 리스트 등 인덱스가 있는 변수의 이름을 적어준다.

 

그러면 위의 코드 기준으로 array배열의 인덱스 첫 번째부터 마지막까지(0 ~ 4) 자동으로 훑어가며 temp변수에 넣고 중괄호 안의 코드를 반복한다.

 

때문에 array[0]을 temp에 넣고 출력, array[1]을 temp에 넣고 출력을 인덱스 마지막까지 알아서 반복해준다.

 

이렇게 for문을 사용하면 간단하기 때문에 가독성이 좋고, 가끔 코딩 실수로 인덱스를 벗어나서 참조하는 경우를 막을 수 있다.

 

하지만 단점은 인덱스(대체로 i)를 사용할 수 없고, 배열 각 원소의 값을 바꿀 수 없다. (값을 저장하거나 수정하는 것이 불가능하다)

728x90
COMMENT