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

메모리:128 MB 시간:1.000 S 표준 입력 및 출력
문제유형 채점방법:일반 만든사람:
제출:9 통과:5

문제설명

반복문은 특정 작업을 정해진 횟수만큼 반복하게 된다.
그러나 경우에 따라서는 중간에 멈추거나 반복을 생략하고 다음으로 넘겨야 하는 경우가 있다.
예를 들어
입력받은 값을 계속 출력하다가 찾는 숫자가 나오면 반복을 종료하게 할 수 있다.
찾는 숫자가 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를 이용해서 풀어보기 바랍니다.