[Java/자바] 반복문 (for, while, do-while)
반복문은 영어로 루프(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를 사용해야 정확한 결과 값을 얻을 수 있습니다.