명령어 return은 함수 내부에서 사용되어 함수의 실행을 끝내는 역할을 한다. return 다음에는 반환값이 오기도 하고 void형 함수의 경우는 반환값이 없이 단독으로 사용된다.
- return; // void형 함수의 종료
- return 반환값; // 반환값이 있는 함수의 종료 및 결과값 반환
이 명령은 또한 함수 실행 도중에 강제로 수행을 종료하려는 목적으로 사용할 수 있다.
void sayHi() {printf("Hi ");return;printf("all."); //절대 실행되지 않는다.} |
이 예에서 두 번째 printf()함수는 절대로 실행되지 않는다. return명령어에 의해서 함수의 실행이 종료되기 때문이다.
long factorial(long n){if (n<0) return -1;long lf = 1;while(n>1) {lf *= n--;}return lf;} |
이 함수는 만약 인자의 값이 음수라면 -1을 반환하고 바로 종료되어 버린다. 그렇지 않다면 팩토리얼을 구해서 반환한다.
또 다른 예를 살펴보자. 함수 exec()는 char형을 받아서 char형을 반환한다. main()함수에서는 사용자로부터 숫자를 하나 입력 받아서 cn 변수에 대입한 후 그것을 exec()함수의 인자로 넘겨주면서 호출하도록 되어 있다. ❶줄을 보면 조건 검사를 하기위해서는 exec()함수를 호출해야만 하도록 되어있다. exec()함수 내부에서 보면 만약 입력한 인수가 1,2,3 셋 중 하나가 아니라면 ❷번 줄의 return –1; 명령에 의해서 함수의 수행이 바로 종료되게 된다. 1, 2, 3중 하나라면 해당되는 명령을 수행했다는 표시를 하게 된다. main()함수에서는 이 함수의 반환값이 –1이라면 수행이 제대로 안 되었다고 판단하고 “Execution failed.”라는 메세지를 표시한다. 또한 반환값이 1이라면 정상적으로 명령이 수행되었다고 판단할 수도 있다. 이 예에서와 같이 함수 내에서 return명령을 만나면 그 즉시로 함수는 종료되게 된다.
#include <stdio.h>char exec(char);int main(void) {char cn;printf("1. Turn left.\n");printf("2. Turn right.\n");printf("3. Stop.\n");printf("Command : ");scanf("%d", &cn);if (exec(cn)==-1) //❶printf("Execution Failed.\n");}char exec(char ca) {if (ca!=1 && ca!=2 && ca!=3)return –1; //❷switch (cA) {case 1:printf("Robot turned left.\n");break;case 2:printf("Robot turned right.\n");break;case 3:printf("Robot stopped.\n");break;}return 1;} |
직접 실행해 보고 결과를 확인해 보기 바란다.
C++ 강좌 전체 목록 >>>
댓글 없음:
댓글 쓰기