Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[1000] Re:[질문] 초보인데요.. unreachable code in function main 이라는 메시지가 자꾸 떠요.
김백일 [cedar] 1791 읽음    2002-08-15 23:19
또치 님이 쓰신 글 :
: main()함수 내에 프로그램을 빠져나오기 위해 [return 0; ]을 입력했어요. 그런데 turbo c로
: compile하는 과정에서 꼭 unreachable code in function main, 이라는 에러 메시지가 뜨면서
: 컴파일을 할 수가 없어요. 다음은 제가 애를 먹었던 프로그램 중 하나 입니다. 보시고 해결 방안을 알려주시면 넘 고맙겠습니다. 꾸벅 ( - - ) ( _ _ )

컴파일러는 exit()문 자체가 루프를 빠져나가는 기능을 한다는 것을 알지 못합니다.
(사람이라도 exit()의 기능을 알려면 도움말을 읽어야 하잖아요!)
그래서 무한 루프로 판정해버리죠.

exit(); 문은 예기치 못한 에러와 같은, 예외 처리에만 쓰시는 것이 좋습니다.
그 외에는 가능한 한 쓰지 마세요.
이렇게 루프를 빠져나가는 기능을 하려고 하면 안됩니다!

코드를 다음과 같이 고치면 되겠네요.

: #include <stdio.h>
: #include <stdlib.h>
:
  int main() // main()의 리턴 타입을 지정하지 않으면 int가 되지만, 관례상 그냥 적으세요.
: {
:    int answer;
:
     do {
:       puts("Enter a value between 1 and 10, 0 to exit: ");
:       scanf("%d", & answer);
:
:       switch(answer)
:       {
          case 0:
          break;
          case 1: case 2: case 3: case 4: case 5: // 그냥 이렇게 가로로 붙이세요.
              puts("You entered the value between 1 and 5.\n");
          break; // switch 문 안에서 {}를 쓰지 않습니다.
          case 6: case 7: case 8: case 9: case 10:
              puts("You entered the value between 6 and 10.\n");
          break;
          default:
              puts("Try again...\n);
:       }
     } while (answer != 0);
     // 무한 루프를 쓰느니, 그냥 이렇게 조건을 다시 검사해 주시는게 더 낫습니다.
    
     return 0;
: }

아니면, switch문 보다는 차라리 if문을 쓰시는 것이 이 경우엔 더 낫겠네요.

: #include <stdio.h>
: #include <stdlib.h>
:
  int main()
: {
:    int answer;
:
     while (1) { // 왜 굳이 2를 쓰셨었죠? 관례적으로 1을 쓰는 겁니다.
:       puts("Enter a value between 1 and 10, 0 to exit: ");
:       scanf("%d", & answer);
:
        if (answer == 0)
              break;
        else (1 <= answer && answer <= 5)
              puts("You entered the value between 1 and 5.\n");
        else (6 <= answer && answer <= 10)
              puts("You entered the value between 6 and 10.\n");
        else
              puts("Try again...\n);
     }
    
     return 0;
: }

+ -

관련 글 리스트
999 [질문] 초보인데요.. unreachable code in function main 이라는 메시지가 자꾸 떠요. 또치 1867 2002/08/15
1000     Re:[질문] 초보인데요.. unreachable code in function main 이라는 메시지가 자꾸 떠요. 김백일 1791 2002/08/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.