본문 바로가기
Java

자바 반복문

by 승환파크 2023. 6. 20.

반복문은 어떤 작업(코드)이 반복적으로 실행되도록 할 때 사용되며, 반복문의 종류로는 for문, while문, do-while 문이 있다.

 

for문과 while문은 서로 변환이 가능하기 때문에 반복문을 작성하 때 어느 쪽을 선택해도 좋지만 for문은 반복 횟수를 알고 있을 때 주로 사용하고, while문은 조건에 따라 반복할 때 주로 사용한다.

while 문과 do-while 문의 차이점은 조건으 먼저 검사하느냐 나중에 검사하느냐일 뿐 동작 방식은 동일하다.

 

for문

프로그램을 작성하다 보면 똑같은 실행문을 반복적으로 실행해야 할 경우가 많이 발생한다.

예를 들어 1부터 5까지의 합을 구하는 코드를 작성할 때 5개의 실행문을 작성하면 가능하지만 이것이 많아진다면 실행문을 매우 많이 적어줘야 할 것이다.

따라서 이러한 경우에 for 문을 사용하면 코드 수를 획기적으로 줄일 수 있다.

 

1 ~ 5 까지의 합을 구하는 코드

public static void main(String[] args) {
    int res = 0;
    for(int i = 1; i < 6; i++){
        res += i;
    }
    System.out.println(res);
}

 

for문의 구조를 살펴보면 아래와 같다.

1. for 문이 처음 실행될 때 초기화식이 제일 먼저 실행된다.

2. 조건식을 평가해서 true이면 for문 블록 내부의 실행문을 실행하고 false 이면 for문 블록을 수행하지 않고 종료한다.

3. 블록 내부의 실행문을 모두 실행했다면 증감식을 실행하고 다시 조건식을 평가한다.

4. 조건식의 평가결과가 true 라면 실행문 -> 증감식 -> 조건식 으로 다시 진행하고 false 이면 for문이 종료된다.

 

중첩 for문

for문은 또 다른 for문으 내포할 수 있는데 이것을 중첩for문 이라고 한다. 이 경우 바깥쪽 for문이 한번 실행할 때마다 중첩된 for문은 지정된 횟수만큼 반복해서 돌다가 다시 바깥쪽 for문으로 돌아간다.

 

중첩for문을 이용해 구구단을 출력하는 코드를 작성하기

public static void main(String[] args) {
    for(int i = 2; i < 10; i++){
        for(int j = 1; j < 10; j++){
            System.out.printf("%d X %d = %d\t", i, j, (i * j));
        }
        System.out.println();
    }
}

 

while문

for문이 정해진 횟수만큼 반복한다면, while문은 조건식이 true 일 경우에 계속 해서 반복한다. 조건식에는 비교 또는 논리 연산식이 주로 오는데, 조건식이 false 가 되면 반복 행위를 멈추고 while 문을 종료한다.

 

while 문의 형식과 실행 흐름

1. while문이 처음 실행될 때 조건식을 평가한다.

2. 평가 결과가 true 이면 실행문을 실행한다.

3. 실행문이 모두 실행되면 조건식으로 도디로아가서 다시 조건식을 평가한다.

4. 만약 조건식이 true 라면 실행문 -> 조건식 으로 다시 진행한다.

5. 만약 조건식이 false 라면 while 문을 종료한다.

 

1부터 100까지 합을 출력하는 코드 작성하기(while 문을 사용해서)

public static void main(String[] args) {
    int result = 0;
    int i = 1;
    while(i <= 100){
        result += i;
        i++;
    }
    System.out.println(result);
}

 

do-while문

do-while 문은 조건식에 의해 반복 실행한다는 점에서는 while문과 동일하다.

while문은 시작할 때부터 조건식을 검사하여 블록 내부를 실행할지 결정하지만, 경우에 따라서는 블록 내부의 실행문을 우선 실행하고 실행결과에 따라서 반복 실행을 계속할지 결정할 수 있다. 이 때 do-while문을 사용할 수 있다.

 

do-while 문의 작성 형식과 실행 흐름

1. do-while문이 처음 실행될 때 실행문을 우선 실행한다.

2. 실행문이 모두 실행되면 조건식을 평가한다.

3. 조건식의 결과가 true 라면 실행문 -> 조건식 과 같이 반복 실행을 한다.

4. 조건식의 결과가 false 라면 do-while 문을 종료한다.

 

break문

break문은 반복문인 for문, while문, do-while문의 실행을 중지할 때 사용한다. 또한 switch문에서도 break문을 사용하여 switch문을 종료한다.

 

break문은 대개 if문과 같이 사용되어 if문의 조건식에 따라 for문과 while문을 종료할 때 사용한다.

public static void main(String[] args) {

    Random random = new Random();


    while(true){
        int num = random.nextInt(6) + 1;
        if(num == 4){
            System.out.println("4가 나옴");
            break;
        }
    }

}

 

만약 반복문이 중첩되어 있을 경우 break문은 가장 가까운 반복문만 종료하고 바깥쪽 반복문은 종료하지 않는다. 중첩된 반복문에서 바깥쪽 반복문까지 종료시키려면 바깥쪽 반복문에 이름(라벨)을 붙이고 'break 이름;' 을 사용하면 된다.

public static void main(String[] args) {

    label:for(int i = 0; i < 10; i++){
        for(int j = 0; j < 10; j++){
            if(j == 3){
                break label;
            }
        }
    }

}

continue문

continue문은 반복문인 for문, while문, do-while문에서만 사용되는데, 블록 내부에서 continue문이 실행되면 for문의 증감식 또는 while문, do-while문의 조건식으로 이동한다.

 

continue문은 반복문을 종료하지 않고 계속 반복을 수행한다는 점에서 break문과 다르다. break문과 마찬가지로 continue문도 대개 if문과 같이 사용되는데, 특정 조건을 만족하는 경우에 continue문을 실행해서 그 이후의 문장을 실행하지 않고 다음 반복으로 넘어간다.

'Java' 카테고리의 다른 글

자바 배열  (0) 2023.06.22
자바 참조 타입  (1) 2023.06.21
자바 조건문  (0) 2023.06.20
연산자의 종류  (1) 2023.06.20
연산자와 연산식  (0) 2023.06.20