사전/사후판단반복

정순동·2024년 1월 21일

알고리즘

목록 보기
4/33

사전판단반복

어떤 조건이 성립하는 동안 처리(프로그램 명령문 또는 명령어 집합)를 반복하여 실행하는 것을 반복(repetition)구조라 하며, 루프(loop)라고도 부릅니다. 이때 while문은 실행 전에 반복을 계속할지를 판단하는데, 이런 구조를 '사전판단반복'이라고 합니다.

	int factorial(int n) {
    	int sum = 0;
        int i = 1;
        while(i <= n) {
        	sum += i;
            i++;
        }
        return sum;
    }

위와 같은 코드에서 while문에서는 i <= n가 참이어야 반복문을 반복하기에, 이를 사전판단반복이라 칭할수 있습니다.

사후판단반복

자바에서 대표적인 사후판단반복문은 do-while문이 있습니다.
do-while문은 루프 본문인 do{}를 일단 한 번 실행한 다음, 조건식 비교를 하고 계속 반복할 것인지를 판단하는 사후판단 반복문입니다. while문과 마찬가지로()안의 제어식을 평가한 값이 true이면 do{}안의 명령문이 반복됩니다.

※ 참고로 for문과 일반while문과는 다르게 do-while문 마지막에는 ';' 이 있어야 합니다.

	do {
    	System.out.print("n값(1이상) : ");
    	n = new Scanner(System.in).nextInt();
    } while (n < 1);

일단 n을 사용자로부터 입력받고, 해당n이 0이나 음수이면 다시 입력받게끔하는 간단한 코드이지만. 이 코드는 반복문을 실행한 다음 조건을 확인하기에 사후판단반복이라 합니다.

둘의 차이점

사전판단반복문인 while, for문에서는 처음에 제어식을 평가한 결과가 false이면 루프 본문이 한 번도 실행되지 않으나, 사후판단반복문인 do-while 문에서는 루프 본문이 반드시 한 번은 실행됩니다.

0개의 댓글