안녕하세요.
오늘은 저번 포스팅에 이어 break, return문에 대해 포스팅합니다.
저번 포스팅은 switch case를 포스팅 했습니다.
이번에는 약간 그 연장선 같은 느낌 입니다.
왜냐하면 저번 포스팅에 break, return이 모두 있었기 때문입니다.
-break-
break문은 반복문과 루프문 그리고 switch case에서만 사용할 수 있습니다.
아래와 같은 문장은 실행 할 수 없습니다.
if(조건문1)
{
실행문;
break;
}
단순 if문 안에서 break문은 사용 할 수 없습니다.
아래와 같은 경우는 가능합니다.
1) while문 아래
while(1)
{
if(조건문1)
{
실행문;
break;
}
}
2) for문 아래
for(초기값;조건문;증감문)
{
실행문1;
if(조건문1)
{
실행문2;
break;
}
}
쉽게 풀어서 반복적으로 수행하다가 조건에 부합하면 강제로 반복문을 빠져 나올 수 있습니다.
아래는 예제 입니다.
아래는 결과 입니다.
역시 쉽게 풀어서 쓰면 지역변수 output을 0으로 초기화합니다.
이후 while문 안으로 진입한 후 무한루프에 빠집니다.
하지만 input 인자가 1이 입력되면 output에 1이 저장되고
break문으로 인해 while문을 빠져 나옵니다..
output 값을 return 한 후 함수를 종료합니다.
결과는 1 이 됩니다.
break문은 함수내에서 반복문을 빠져나오는 역할 을 합니다.
-return-
만약 return 문으로 break를 대체 한다면 어떻게 될까요?
return문이 break와 다른점은 값을 반환하면서 함수 전체를 빠져 나옵니다.
아래 예제를 보면 이해가 되실 겁니다.
아래는 결과 입니다.
결과가 3입니다.
3이라는 의미는 함수의 마지막 retun output;는 실행되지 않은 것입니다.
break와 다르게 return은 반복문뿐만 아니라 함수까지 종료 시켜 버립니다.
하지만 이전 포스팅에서 언급했던 정적테스트에서는 결과 없는 return은 에러 입니다.
물론 기능적으로는 문제없이 동작합니다. 현업에서도 단순히 return;을 쓰는 경우가 태반입니다.
이런 경우는 단순히 함수를 종료 시키는 용도로 사용하기 위함 입니다.
정적테스트를 해야하는 경우라면 반드시 return 0; 이렇게 0이라도 반환 해주어야 합니다.
감사합니다..
'프로그래밍 > C언어 기초 강좌' 카테고리의 다른 글
C언어 기초강좌8(while) (13) | 2020.12.21 |
---|---|
C언어 기초강좌7 (for문) (9) | 2020.12.14 |
C언어 기초 강좌5 (Switch~Case 문) (2) | 2020.12.07 |
C언어 기초 강좌4(if문, if~else문) (2) | 2020.11.26 |
C언어 기초강좌3(연산자) (0) | 2020.11.20 |
댓글