Goto 문: 두 판 사이의 차이
내용 삭제됨 내용 추가됨
편집 요약 없음 |
잔글 봇: 틀 이름 및 스타일 정리 |
||
9번째 줄:
고급 언어에서 goto 문은 비판의 대상이 되어 왔는데, goto 문이 과도하게 사용되면 읽고 유지하기 힘든 [[스파게티 코드]]가 나오기 쉽기 때문이다. [[구조적 프로그래밍]]은 [[1960년대]]와 [[1970년대]]에 더 두드러졌는데, 많은 [[컴퓨터 과학자]]들의 결론은 프로그램이 항상 goto 문 대신 일명 ‘구조적’인 흐름 제어문([[순환문]], if-then-else문)을 사용해야 한다는 것이다.<ref>{{서적 인용 |저자= [[데니스 리치]] |저자2=[[브라이언 커니핸]] |제목= C 언어 프로그래밍 |꺾쇠표= |출판사= 대영사 |연도= 1998 |판= 2 |쪽= 91 |isbn= 89-7163-026-4}}</ref> 그러나 goto 문의 사용이 종종 나쁜 습관이긴 하지만, 많은 프로그래밍 언어에서 goto 문을 사용하지 않고는 간단히 되지 않는 경우(중첩 순환문을 빠져나갈 때나 [[예외 처리]]할 때)가 있다고 주장하는 사람들이 있다.
goto 문에 대한 한 가지 유명한 비판은 [[1968년]]에 [[에츠허르 데이크스트라]]의 'goto 문의 해로움'<ref>{{
== 변형 ==
* 계산된 goto 문(Computed GOTO): 수식의 값에 따라 몇 군데의 레이블로 분기하거나, 변수에 저장되어 있는 레이블로 분기한다. 계산된 goto 문은 보통 goto 문보다 문제가 더 심각한데, 프로그래머가 어떤 구문을 본다고 해도 다음에 무엇이 수행될지 알 수 없기 때문이다.
** [[베이직]]의 ON goto 문은 전자의 계산된 goto 문을 지원하며, 각각의 사례별로 분기에 유용하다.
** [[C (프로그래밍 언어)|C]]에서는 [[Switch 문]]을 지원한다. 어떤 C 컴파일러들은 레이블 변수에 따라 분기하는 goto 문을 제공하기도 한다.
30번째 줄:
== 바깥 고리 ==
* {{
{{프로그래밍 구성체}}
|