Python에 goto 문이 존재하는 경우

Najwa Riyaz 2023년1월30일
  1. 예외를 사용하여 Python에서 goto 문 에뮬레이션
  2. breakcontinue 명령문과 함께 루프를 사용하여 Python에서 goto 명령문 에뮬레이션
Python에 goto 문이 존재하는 경우

이 기사는 goto 문이 Python에 존재하는지 여부에 대한 답을 제공합니다.

기본적으로 goto 문은 Python에서 지원되지 않습니다. 일반적으로 이러한 명령문은 매우 조직화되지 않은 코드를 생성하기 때문에 널리 경멸됩니다. 따라서 스파게티 코드로 끝납니다. 이러한 코드는 흐름을 이해하고 디버깅을 시도하는 동안 이해하기 어려워지고 역추적됩니다.

Python은 if-else 표현식, 예외 및 루프를 사용하는 것과 같이 코드를 분기하는 여러 방법을 사용하여 구조화된 프로그래밍을 가능하게 합니다.

Python에서 goto 문을 에뮬레이트하려면 이 기사에서 몇 가지 예를 제공합니다. 그러나 goto를 사용하는 것은 잘못된 프로그래밍 방식이므로 이러한 방법은 권장되지 않습니다.

예외를 사용하여 Python에서 goto 문 에뮬레이션

권장되는 프로그래밍 방식은 아니지만 예외를 사용하여 goto를 구현하는 구조화된 방법을 제공할 수 있습니다. 결국 예외는 깊이 중첩된 제어 구조에서 튀어나올 수 있습니다. 아래에서 이 예를 확인하십시오.

class gotolabel(Exception):
    print("from the goto label")  # declare a label


try:
    x = 4
    if x > 0:
        raise gotolabel()  # goto the label named "gotolabel"
except gotolabel:  # where to goto the label named "gotolabel"
    pass

출력:

from the goto label

breakcontinue 명령문과 함께 루프를 사용하여 Python에서 goto 명령문 에뮬레이션

breakcontinue 명령문과 함께 루프를 사용하여 Python에서 goto 명령문을 에뮬레이트할 수 있습니다. 이 예제 프로그램은 이 방법을 보여줍니다.

prompt = "Roll the dice "

while True:
    try:
        y = int(input(prompt))
    except ValueError:
        print("Please enter a valid number")
        continue

    if y > 6:
        prompt = "The dice has numbers 1-6 ! Input a number <6"
    elif y < 1:
        prompt = "The dice has numbers 1-6 ! Input a number >1"
    else:
        print("Correct!")
        break

출력:

Roll the dice hj
Please enter a valid number
Roll the dice 6
Correct!

여기에서 continue 문은 프로세스가 루프의 다음 반복으로 점프하여 무한 루프를 일으키는 데 도움이 됩니다. 반면에 break 문은 루프를 종료하는 데 도움이 됩니다.

관련 문장 - Python Loop