for
문도 while
문과 같은 반복문이고, 코드를 반복 실행하는 역할을 한다. for
문은 주로 반복 횟수가 정해져 있을 때 사용한다.
for (1.초기식; 2.조건식; 4.증감식) {
// 3.코드
}
for
문은 다음 순서대로 실행된다.
for
문을 빠져나간다.for
문은 복잡해 보이지만 while
문을 조금 더 편하게 다룰 수 있도록 구조화 한 것 뿐이다.
예를 들어 1부터 10까지 출력하는 for
문은 다음과 같다.
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
int i = 1
i <= 10
System.out.println(i);
i++
i <= 10
조건이 거짓이 되면 for
문을 빠져나간다.package loop;
public class For1 {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
}
}
i
부터 하나씩 증가하는 수를 endNum
(마지막 수)까지 더해라 (i
~ endNum
더하기)
package loop;
public class For2 {
public static void main(String[] args) {
int sum = 0;
int endNum = 3;
// 1 + 2 + 3 = 6
for (int i = 1; i <= endNum; i++) {
sum = sum + i;
System.out.println("i = " + i + " sum = " + sum);
}
}
}
while
문과 for
문을 비교해보자.
package loop;
public class While2_3 {
public static void main(String[] args) {
int sum = 0;
int i = 1;
int endNum = 3;
while (i <= endNum) {
sum = sum + i;
System.out.println("i = " + i + " sum = " + sum);
i++;
}
}
}
둘을 비교했을 때 for
문이 더 깔끔하다는 느낌을 받을 것이다. for
문은 초기화, 조건 검사, 반복 후 작업 등이 규칙적으로 한 줄에 모두 들어 있어 코드를 이해하기 더 쉽다. 특히 반복을 위해 값이 증가하는 카운터 변수를 다른 부분과 명확하게 구분할 수 있다.
for (int i = 1; i <= endNum; i++)
여기서는 바로 변수 i
가 카운터 변수이다. 증가하면서 반복 횟수가 올라가고, 또 변수 i를 사용해서 계속 반복할 지 아니면 빠져나갈 지 판단할 수 있다.
이렇게 반복 횟수에 직접적인 영향을 주는 변수를 선언부터, 값 증가, 조건식에 활용까지 for (초기식; 조건식; 증감식)
구조를 활용해서 처리하는 것이다.
덕분에 개발자는 루프 횟수와 관련된 코드와 나머지 코드를 명확하게 구분할 수 있다.
반면에 while
문을 보면 변수 i
를 선언하는 부분 그리고 i++
로 증가하는 부분이 기존 코드에 분산되어 있다.