goto 문장과 기호

1598 단어
goto 문장과 표지는 유해할 수 있지만 모두 쓸모없는 것은 아니다.
제어 프로세스에 영향을 주는 문장:
  • (1) 지점
  • (2) 순환
  • (3)goto는 무조건 뛴다

  • 우리는 브레이크가 가장 안쪽 순환에서만 튀어나올 수 있다는 것을 알고 있다. 만약에 플러그인 순환에서 어떤 오류 조건이 발생하면 즉시 가장 바깥쪽 순환에서 튀어나와 오류 처리를 하면 goto 문장을 사용할 수 있다.
    for (...)
        for (...){
            ...
            if ( )
                goto error;
        }
    error:
         ;

    여기의 error: 레이블(Label)이라고 하는데 어떤 문장 앞에 몇 개의 레이블을 추가할 수 있습니다.
    goto 문장은 같은 함수의 어떤 표호로만 돌릴 수 있을 뿐 다른 함수에서는 돌릴 수 없습니다.goto 문장을 남용하면 프로그램의 제어 절차가 매우 복잡하고 가독성이 떨어진다.
    goto 문장은 반드시 존재해야 하는 것이 아닙니다. 분명히 다른 방법으로 대체할 수 있습니다. 위의 코드는 다음과 같은 형식으로 바꿀 수 있습니다.
    int cond = 0;
    for (...){
        for (...){
            ...
            if ( ){
                cond = 1;
                break;
            }
        }
        if (cond)
            break;
    }
    if (cond)
         ;

    일반적으로 goto 문장은 이런 경우에만 사용되며, 한 함수 중 어느 곳에서든 오류 조건이 발생하면 즉시 함수 끝으로 넘어가 오류 처리를 할 수 있다.
  • (1) 이전에 분배된 자원을 방출한다
  • (2) 이전에 변경된 전역 변수를 복원합니다.(롤백 작업?)
  • 좋은 웹페이지 즐겨찾기