주어진 조건이 만족할 때까지 코드를 반복적으로 수행하는 것이 반복문이라고 합니다.
반복문의 종류와 기능 알아보기
- while문
- do-while문
- for문
- continue와 break
while문
while문은 while의 조건문이 참인 동안 코드를 수행하는 반복문입니다. 조건이 성립하지 않으면 while문을 빠져나옵니다.
int a=0;
int sum=0;
while(a<10){
sum += a;
a++;
}
System.out.println(sum);
위의 코드는 while문을 사용하는 방법의 예시입니다. 조건식은 (a <10)으로 a가 10보다 작은 경우에만 아래의 코드를 수행합니다. 따라서 sum에는 0부터 9까지 덧셈이 진행되고 a가 10이 되는 경우 while문을 빠져나와서 sum의 값을 출력합니다.
do-while문
do-while문은 while문과 비슷하지만 가장 큰 차이가 한 가지 있습니다. 그 차이는 do를 통하여 조건에 상관없이 코드를 한번 수행한 후 조건을 확인합니다.
int a=5;
int b=3;
do{
System.out.println("a는 b보다 작습니다.");
}while(a<b)
위와 같이 do-while문을 사용할 수 있습니다. 조건문이 거짓이지만 코드가 한 번은 실행되기에 a가 b보다 크지만 "a는 b보다 작습니다."라는 문장이 나오게 되었습니다.
int a=3;
do{
System.out.println("0을 제외한 숫자를 입력해주세요.");
Scanner input = new Scanner(System.in);
a=input;
}while(a==0)
위와 같은 용도로 do-while문이 사용될 수 있습니다. a의 값이 앞의 다른 작업에 의해서 0이 아닌 값을 받더라도 "0을 제외한 숫자를 입력해주세요."라는 문장과 함께 a를 초기화하는 작업을 할 수 있습니다.
for문
초기화 식, 조건식, 증감식을 한 번에 작성을 하게 되며 주로 횟수를 따지는 반복을 해야 할 때 많이 사용됩니다.
for(int i=1;i<10;i++){
System.out.println(i+"번째");
}
위의 예시를 보시면 소괄호 안에서 i=1로 초기화해주고 i <10이라는 조건식과 i++이라는 증감식을 다 표현하였습니다. 코드를 실행하면 i는 1부터 시작하므로 "1번째"라는 문장부터 i를 증가시키며 반복하여 "9번째"라는 문장을 출력하고 증감식에 의하여 i가 10이 된 후 조건의 결과가 거짓이라 반복문을 종료합니다.
continue와 break
continue는 반복문에서 진행을 하다가 continue를 만나면 continue뒤의 내용을 진행하지 않고 다음 반복을 시작하기 위해 조건을 확인하라는 명령어입니다. break는 case에서 사용된 것 처럼 break를 만나면 지금 진행되는 코드를 빠져나와라는 명령어입니다.
int sum=0;
for(int i=0; i<=50; i++){
if((i%2)==0){
continue;
}
sum+=i;
}
위의 예시를 보면 i가 50까지 수를 올리며 sum에 더하게 되는데 if문의 조건에 의하여 i를 2로 나누었을 때 나머지가 0이면 즉 2의 배수면 continue를 만나게 됩니다. continue를 만나면 아래의 코드를 실행하지 않게되어 sum에 i값을 더하지 않고 증감식으로 가게됩니다. 그렇기 때문에 sum에는 50까지의 홀수만 더해지게됩니다.
int a=0;
int sum=0;
while(true){
sum += a;
if((a>20)\\(sum>200)){
break;
}
a++;
}
위의 예시의 경우 sum에 0부터 숫자를 더하다가 a가 20을 넘게 되거나 sum이 200을 넘게 되면 break를 만나 반복문이 종료됩니다. if의 조건이 참인 순간 while문을 빠져나오기 때문에 a++을 통한 증감이 이루어지지 않고 그 순간의 a값을 출력할 수 있습니다.