자바 반복문 2, for

for 반복문은 초보자가 처음에 이해하기 어렵지만, 자바에서 가장 많이 쓰이는 반복문입니다.

for 반복문은 자바에서 사용하는 반복문의 거의 95% 이상을 차지할 겁니다. (사실 특별한 경우가 아니면, while을 사용하는 경우가 없습니다)

초보자 입장에서는 직관적으로 와닿지도 않고, 한참을 고민해야 알 수 있고, 이걸 코딩문제로 만들면 끝도없이 많은 종류의 문제를 만들 수 있습니다.

하지만, 역시나 실무에서 사용하는 for 구문은 극히 제한적이며, 코딩 컨벤션(Coding Convention: 코딩 관습)으로 굳어있습니다.

for 구문

for 역시도 영어로는 “~하는 동안”이라는 뜻이 있습니다. 하지만, 프로그램에서의 사용방식은 while과는 많이 다릅니다.
for 구문은 아래와 같은 구조로 되어 있습니다.

for ( 초기화 ; 종료조건 ; 증감값 ) {
	// 반복할 코드
}

실제 코드

아래와 같이 10번 반복하는 콘솔 출력을 위해서는

아래와 같은 코드를 사용합니다.

public class JavaRunner03 {

	public static void main(String[] args) {
		
		for (int i = 0; i < 10; i++) {
			System.out.println("이 문장이 10번 출력되도록 하시오");
		}

	}
}

while 문과 비교하면, 이해하기 쉽습니다.

public class JavaRunner03 {

	public static void main(String[] args) {
		
		int i = 0;
		while( i < 10 ) {
			System.out.println("이 문장이 10번 출력되도록 하시오");
			i++;
		}
	}
}

while 문에서 3 개로 흩어졌던, 구문을 for에서는 괄호() 안에 한 줄로 세미콜론(;)으로 구분하여 적었습니다.
for 문도 여러 줄로 적을 수 있지만, 그건 학교에서 하는 문제를 위한 문제일 뿐이고, 실무에서는 대부분 저렇게 한 줄로 적습니다. (특수한 경우에만 여러 줄로 나누어 적습니다. 대신 세미콜론은 유지해야 합니다)

Coding Convention

코딩을 하다보면, 이상하다고 생각할 수 있는, 관습이 많이 있습니다. 그러한 관습을 무시할 수도 있지만, 하지만, 많은 사람이 협업을 하는 경우에는 서로가 서로를 위해서, 그리고 나중에 프로그램을 수정하기 쉽게 하기 위해서 이러한 관습을 따르는 것이 좋습니다.

위에서 살펴본 전형적인 for 구문 같은 경우에도

	for (int i = 0; i < 10; ++i) {
		System.out.println("이 문장이 10번 출력되도록 하시오");
	}
	for (int i = 1; i <= 10; i++) {
		System.out.println("이 문장이 10번 출력되도록 하시오");
	}

이렇게 다르게 적어도 똑같이 작동합니다. 하지만, 거의 대부분 아래와 같은 코딩 스타일을 유지하려고 합니다.

	for (int i = 0; i < 10; i++) {
		System.out.println("이 문장이 10번 출력되도록 하시오");
	}

또는

	for (int idx = 0; idx < 10; idx++) {
		System.out.println("이 문장이 10번 출력되도록 하시오");
	}

변수로는 i 혹은 idx를 사용하고, 부등호를 사용하고, ++ 뒤에 붙이는 등의 습관을 유지합니다.

이렇게 해 두면, 다음 사람은 idx 뒤에 있는 숫자만 보고도, 내부 코드가 몇 번 반복되는지 금방 알 수 있기 때문에 프로그램을 유지보수 하기에 유리합니다.