반복문에서 continue와 break 문 사용 방법 및 예제
반복문에서 continue를 사용하면 뒤에 내용을 건너뛰고 반복문의 처음으로 돌아간다.
반복문에서 break를 사용하면 반복문을 말 그대로 break 시켜서 나오게 된다.
예를 들어 보자.. 반복문에서 switch 문을 사용하려고 한다.
int rowCount=0;
while(1){
switch(Db_tmpMktType[0]){
case '0':
dWertPapCnt += 1;
dWertPap += Db_tmpItemPrc;
continue;
break;
case '1':
dKosdaqCnt += 1;
dKosdaq += Db_tmpItemPrc;
continue;
break;
case '2':
dEtcCnt += 1;
dEtc += Db_tmpItemPrc;
continue;
break;
case '3':
dBondCnt += 1;
dBond += Db_tmpItemPrc;
continue;
break;
case '4':
dFuturesCnt +=1;
dFutures += Db_tmpItemPrc;
continue;
break;
case '5':
dCashCnt += 1;
dCash += Db_tmpItemPrc;
continue;
break;
}
rowCount++
break;
}
당연히 continue; break; 둘 중 하나만 사용해야 한다
continue; 를 사용한다면? switch 문에 해당하는 case로 이동하여 코드를 실행하고 그 뒤에 내용은 건너뛰어 다시 while 문의 처음으로 간다. 위와 같은 경우 루프를 빠져나올 수 있는 조건이 없기 때문에 무한루프가 된다.
break; 를 사용하면 switch 블럭에서 나와 아래에 있는 break; 문이 실행되어 반복문에서 나오게 된다.
(위에서는 반복문에서 break를 사용하면 반복문을 나온다고 했지만 예제에서는 반복문 안의 switch 블럭에서 break를 사용했기 때문에 switch에서만 빠져나온다.)
위에서 continue 를 사용하려고 한다면 while 과 switch 사이( 부분 ), 즉 continue가 실행되기 전에 반복문을 나올 수 있는 코드를 작성해야 한다.
while(1){
switch(Db_tmpMktType[0]){ … … … |
continue문이 실행되기전 반복문 탈출 조건>
while(1){ rowCount++; if(rowCount==10) break; switch(Db_tmpMktType[0]){ … … … |
이렇게 코드를 작성한다면 무한루프에 빠지지 않고 continue가 실행되기 전에 rowCount가 증가하기 때문에 반복문을 멈출수가 있다.
'C' 카테고리의 다른 글
c언어에서 소수점 반올림 쉽게 하기(sprint 사용) (0) | 2012.08.02 |
---|