반복문 중 활용빈도가 가장 높은 for 반복문입니다. for문으로 구현할 수 있는 모든 것은 while 반복문으로 대체 가능합니다. 반대로도 마찬가지입니다. 상황에 따라서 while과 for 반복문 중 어떤 것을 사용하는 것이 편할지 판단하는 것은 자신의 몫입니다.

 

1. for 반복문 구조


 

for(초기식; 조건식; 증감식)
{
. . .
}

 

(1) 초기식

for문을 돌리기 위해 사용할 변수를 초기화를 시킵니다. 가령, num = 0; 같은 식으로 말입니다. 초기식은 for 반복문에 들어와서 딱 한 번 시행만 시행되고 더 이상 쓰이지 않습니다.

(2) 조건식

조건식에 따라서 { } 구문을 실행할지 말지 결정을 합니다. 조건식이 '참(true)' 이면 { }를 실행, '거짓(false)' 이면 for 반복문을 탈출합니다.

(3) 증감식

for문을 돌리기 위한 변수의 증가 혹은 감소를 담당하는 식입니다. 예를 들면, num++ 혹은 num- 혹은 num+=5 와 같이 증감식을 한 번 거치고나서 다시 조건식을 판단하여 { } 구문을 또 한 번 실행할지 말지 결정이 됩니다.

정리하면 다음 그림과 같습니다.

image

조건식이 '참'일 동안은 ② → ③ → ④ → ② 의 순서로 계속 실행이 되다가, 조건식이 거짓이 되면 for 반복문을 탈출합니다.

package hello;

public class HelloJava{
    public static void main(String[] args){
        for (int count=0; count < 5; count++){
            System.out.println("count is "+count);
        }
    }
}

실행결과

The count is 0

The count is 1

The count is 2

The count is 3

The count is 4

계속하려면 아무 키나 누르십시오 . . . 

 

while문과 다르게 for문은 초기식에서 변수의 선언이 가능하고 증감식에서 변수의 증가 혹은 감소가 가능합니다.

위의 코드를 while 반복문을 사용해서 짜려면 어떻게 해야할까요?

package hello;

public class HelloJava{
    public static void main(String[] args){
        int count=0;
        while (count < 5){
            System.out.println("count is "+count);
            count++;
        }
    }
}

 

위의 코드의 실행결과는 for문을 사용했을때와 같습니다. 하지만 for문과는 다르게 변수를 밖에서 선언하고 초기화까지 시켜야하며 while문의 { } 안에서 cnt 변수를 증가시켜줘야 합니다.

for문은 정해진 반복횟수가 있는 경우에 사용하는 것이 좋습니다.

while 문은 어떤 변수의 값이 특정한 조건이 될 경우 특정 코드를 실행시킬 때 사용하기 좋습니다.

 

 

 

2. 조건식 / 증감식이 없는 for문


 

1) 조건식이 없는 경우

package hello;

public class HelloJava{
    public static void main(String[] args){
        int cnt = 0;
        for (cnt = 0; ;cnt += 2)
        {
            System.out.println("The count is "+cnt);
        }
    }
}

 

 

실행결과

The count is 0

The count is 2

The count is 4

The count is 6

The count is 8

The count is 10

.

.

.

println함수의 출력이 멈추지 않습니다.

조건식이 비어있는 경우는 항상 true로 간주하여 무한루프가 되어버립니다.

증감식이 비워져도 아무런 문제가 없습니다.

'프로그래밍 언어 > Java' 카테고리의 다른 글

(Java) 10 - 조건문(1) - if  (0) 2020.05.17
(Java) 9 - 반복문(3) - do-while  (0) 2020.05.17
(Java) 7 - 반복문(1) - while  (0) 2020.05.17
(Java) 6 - 연산자  (0) 2020.05.17
(Java) 5 - 자료형(3) - 형 변환  (0) 2020.05.17

+ Recent posts