문제 번호 1120 --[기초-반복실행구조] 반복을 멈추어 보자

1120: [기초-반복실행구조] 반복을 멈추어 보자

시간 제한: 1 Sec  메모리 제한: 128 MB
제출: 683  해결 문제 수: 257
[제출][채점상황][게시판][:]

문제 설명

반복문은 특정 작업을 정해진 횟수만큼 반복하게 된다.

그러나 경우에 따라서는 중간에 멈추거나 반복을 생략하고 다음으로 넘겨야 하는 경우가 있다.

예를 들어

입력받은 값을 계속 출력하다가 찾는 숫자가 나오면 반복을 종료하게 할 수 있다.

찾는 숫자가 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 명령으로 넘어간다.

입력

입력으로 숫자들이 계속 입력된다. 이때 숫자의 크기는 100을 넘지 않는다.

출력

입력받은 수 중에서 2의 배수는 출력하고 4의 배수는 출력하지 않고 33이라는 숫자가 입력되면 프로그램을 종료한다. 그리고 33보다 크면 무조건 출력한다.

입력예시

2 4 6 8 10 14 18 22 26 30 37 38 39 40 33 34 35 36 

출력예시

2 6 10 14 18 22 26 30 37 38 39 40

도움말

이 문제는 break 와 continue를 이용해서 풀어보기 바랍니다.


출처

 

[제출][채점상황]