프로그래밍 언어/JAVA

[Java/자바] 반복문 (for, while, do-while)

고품격미식가 2019. 8. 21. 14:08

반복문은 영어로 루프(loop), 반복되는 일을 처리하기 위해 사용하는 것이 반복문 입니다.

 

for문

반복문중에서 가장 많이 사용되는 것이 for문 입니다.

for문은 어떤 조건부터 어떤 조건까지 반복수행하는지 한눈에 볼 수 있어 편리합니다.

for문의 형태는 다음과 같습니다.

for(초기화식; 조건식; 증감식) {
	수행문;
}

for문의 수행순서는 다음과 같습니다.

①초기화식 → ②조건식 → ③수행문 → ④증감식 → ②조건식 → ···

초기화식은 딱 한번만 수행하며, 조건이 참인 동안 ②~순서로 반복문을 계속 수행합니다.

//example
//1부터 10까지의 숫자를 더하는 프로그램입니다.
int i;
int sum = 0;

for(i = 1; i <= 10; i++) {
	sum += i;
}

 

 

중첩 for문

for문 안에 또 다른 for문을 중첩해서 사용하는 경우가 있습니다.

//example
//1단부터 9단까지 구구단을 출력하는 프로그램입니다.
int dan;
int times;

for(dan = 1; dan <= 9; dan++) { //외부 for문
	for(times = 1; times <= 9; times++) { //내부 for문
    	System.out.println(dan + "X" + times + "=" + dan * times);
    }
    System.out.println(); //한 줄 띄워서 출력
}

중첩 for문 수행순서는, 먼저 외부 for문에서 dan = 1 부터 시작합니다. dan = 1 일 때, 내부 for문의 내용을 수행합니다. 내부 for문의 내용을 모두 수행하면 다시 외부 for문 dan = 2 일 때, 내부 for문의 내용을 수행합니다.

다음은  9단까지 모두 수행한 출력 결과입니다. 1단부터 9단까지 구구단 프로그램이 잘 만들어졌습니다.

 

 

while문

while문은 조건식이 참인 동안 수행문을 반복해서 실행합니다.

while문의 형태는 다음과 같습니다.

while(조건식) {
	수행문;
}
//example
//1부터 10까지의 숫자를 더하는 프로그램입니다.
int num = 1;
int sum = 0;

while(num <= 10) {  //num값이 10보다 작거나 같을동안
	sum += num; //sum에 num을 더하고
    	num ++;     //num을 1씩 증가시킴
}

 

 

do-while문

do-while문은 'do {}' 안의 문장을 무조건 한 번 수행한 후에 조건식을 검사합니다. 따라서 중괄호 안의 문장을 반드시 한번 이상 수행해야 할 때 do-while문을 사용합니다.

do-while문의 형태는 다음과 같습니다.

do {
	수행문1;
} while(조건식)
//example
//1부터 10까지의 숫자를 더하는 프로그램입니다.
int num = 1;
int sum = 0;

do {
	sum += num;
    	num++;
} while(num <= 10)

 


 

번외.

 

continue

반복문 안에서 continue를 만나면 이후의 문장은 수행하지 않고 for문의 처음으로 돌아가 증감식을 수행합니다.

//example
//1부터 10까지의 수 중 홀수인 숫자만 더하는 프로그램입니다.
int num;
int sum = 0;

for(num = 1; num <= 10; num++) { //1부터 10까지 반복
	if(num % 2 == 0) { //num값이 짝수이면
    continue; 		   //처음으로 돌아가 증감식 num++수행
    }
    sum += num;		   //num값이 홀수일때만 실행
}

 

 

break

반복문에서 break를 사용하면 더 이상 반복하지 않고 반복문을 빠져나옵니다.

//example
//합이 10보다 크거나 같아질 때, num값과 sum값을 구하는 프로그램입니다.
int num;
int sum = 0;

for(num = 0; ; num++) { //조건식을 생략하는 대신 break문을 사용합니다
	sum += num;
    if(sum >= 10) { //sum이 10보다 크거나 같을 때
    	break; //반복문 종료
    }
}
System.out.println("num값은 " + num);
System.out.println("sum값은 " + sum);

 

위의 코드를 출력한 결과입니다. break를 사용하여 sum = 10일 때 반복문을 종료하였으므로, num값은 4입니다. 즉, 1~4까지 숫자를 더했을 때 합이 10이므로 반복문이 끝납니다.

break를 사용하지 않고 종료조건을 for문안에서 사용하면 num값을 늘리는 증감식을 먼저 수행하므로, num값이 5가 됩니다.

따라서 프로그램을 실행 중에 반복문을 중단하려면, break를 사용해야 정확한 결과 값을 얻을 수 있습니다.