반복문은 특정 작업을 정해진 횟수만큼 반복하게 된다.
그러나 경우에 따라서는 중간에 멈추거나 반복을 생략하고 다음으로 넘겨야 하는 경우가 있다.
예를 들어
입력받은 값을 계속 출력하다가 찾는 숫자가 나오면 반복을 종료하게 할 수 있다.
찾는 숫자가 4이고
입력은 5 3 9 1 2 4 9 ~~~ 이런식으로 계속 들어온다고 가정하자
이때 4가 입력되는 순간 더이상 출력하지 않고 멈추게 하는 것이다.
결국 출력은 5 3 9 1 2 만 출력되게 한다.
이때 사용할 수 있는 명령이 break 이다. (switch case 명령에서 다룬 내용과 비슷하다고 생각하면 된다.)
결국 break 명령은 반복을 중간에 멈추게 하는 역할을 한다. 이때 자신을 둘러싸고 있는 반복문 하나만 종료하게 된다.
int n,k;
scanf("%d",&n);
for( ; ; ){
scanf("%d",&k);
if(n==k) break;
else printf("%d ",k);
}
입력으로
4
5 3 9 1 2 4 9 ~~ 계속 입력된다고 하면
출력은
5 3 9 1 2 까지만 출력한다.
이와 다른 명령으로는 continue 명령이 있다. 이는 실행의 순서를 변경하는 것이다.
continue가 실행되면 자신의 밑에 있는 명령들은 건너뛰고 반복문의 ( ) 속으로 이동하여 다음 명령을 실행한다.
예를 들어
int n;
scanf("%d",&n);
for( int i=1 ; i<=n; i++ ){
if(i%3==0) continue;
else printf("%d ",i);
}
입력으로 10이 입력되면 결과는
1 2 4 5 7 8 10 이 출력된다.
이유는 조건에 해당하는 i%3==0일때 continue명령이 실행되면
다음 명령들을 실행하지 않고 반복의 ( ) 안으로 이동하여 i++ 명령을 실행하고 i<=n 명령으로 넘어간다.