[C] goto문
카테고리: C
태그: goto
이 글은 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: /* 실행 코드 */
- A만 수행했다면 A만 되돌리고, A -> B를 수행했다면, B -> A순으로 되돌리는 경우
참조
💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸
댓글 남기기