[C] goto문

Date:     Updated:

카테고리:

태그:

이 글은 C goto문을 공부하고 정리한 글입니다

    goto <next_line>;
    ...
    <next_line>:
  • goto는 같은 함수 내에 있는 레이블로 점프(이동)한다
  • goto를 잘못사용하면 스파게티 코드가 된다
  • 반복문도 goto로 작성 할 수 있다.
    • 하지만 더 안전한 방법인 반복문을 보통 사용한다
  • goto문은 언제나 전방(아래쪽)으로만 점프할 것
    • 후방(위)으로 점프하면 스파게티처럼 꼬이기 쉬움
  • 한 함수 안에 있는 여러 개의 조건문이 공통된 코드를 실행해야 할 때도 써도 됨
  • goto를 사용하면 좋은 경우
    • A만 수행했다면 A만 되돌리고, A -> B를 수행했다면, B -> A순으로 되돌리는 경우
        do A
        if (error)
            goto out_a;
        do B
            goto out_b;
        do C
            goto out_c;
        goto out;
      out_c:
        undo C
      out_b:
        undo B
      out_a:
        undo A
      out:
        return ret;
      
    • 다중 for문을 탈출해야 하는 경우
      for (i = 0; i <10; i++) {
        for (j = 0; j < 10; j++) {
            for (k = 0; k < 10; k++) {
                if(data[i][j][k]) {
                    /* 실행 내용 */
                }
                else
                {
                    goto loop_exit;
                }
            }
        }
      }
      loop_exit:
      /* 실행 코드 */
      


참조

포큐아카데미 C 언매니지드 프로그래밍



💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우 
  언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸

맨 위로 이동하기

C 카테고리 내 다른 글 보러가기

댓글 남기기