1. 程式人生 > >python 多層巢狀跳轉的方法

python 多層巢狀跳轉的方法

#跳轉
#Python 不支援 goto 和 label,想要在多層巢狀迴圈中跳轉,稍稍有些麻煩。最簡單的做法
#是設定跳轉標誌,並在相應位置檢查。
def test():
    stop = False
    while True:
        while True:
            stop = True
            # 中斷前設定跳出標誌,供外迴圈判斷。
            break
        if stop: break
        #或者,將內層迴圈重構為函式,基於返回值作出判斷。
def test():
    def inner():
    # 內迴圈重構函式,以返回值作為跳轉標誌。
    while True:
        return False
    return True
    while True:
        if not inner(): break
#更激進的做法是丟擲異常,可繞開迴圈語句和函式限制,在呼叫堆疊層面攔截捕獲。當然,
#這涉及函式呼叫和異常處理內容,後文另作詳述。
#網上有修改位元組碼插入跳轉指令實現 goto 的方法,可供研究,不建議使用。
#另定義多個異常,分別 raise 和 except,也算是變向實現 goto label 機制。

轉載 python學習筆記 第三版