python涓璯oto鍑芥暟鎬庝箞浣跨敤
鍦≒ython涓紝娌℃湁鍐呯疆鐨?code>goto鍑芥暟锛屽洜涓哄畠杩濆弽浜嗙粨鏋勫寲缂栫▼鐨勫師鍒欍€傚湪缁撴瀯鍖栫紪绋嬩腑锛屽敖閲忛伩鍏嶄娇鐢ㄦ棤鏉′欢璺宠浆璇彞锛屽goto
銆?/p>
濡傛灉浣犵湡鐨勯渶瑕佸湪Python涓ā鎷?code>goto璇彞锛屼綘鍙互浣跨敤label
鍜?code>goto杩欎袱涓嚱鏁版潵瀹炵幇銆備笅闈㈡槸涓€涓畝鍗曠殑绀轰緥锛?/p>
class Label:
def __init__(self, name):
self.name = name
self.target = None
def __call__(self):
if self.target:
self.target()
def set_target(self, target):
self.target = target
def goto(label):
label()
# 浣跨敤绀轰緥
def main():
start = Label('start')
loop = Label('loop')
end = Label('end')
i = 0
start()
i += 1
print(i)
if i < 5:
loop()
i += 1
print(i)
goto(start)
else:
end()
print('Done')
if __name__ == '__main__':
main()
鍦ㄤ笂闈㈢殑绀轰緥涓紝鎴戜滑瀹氫箟浜?code>Label绫绘潵琛ㄧず鏍囩锛岃绫荤殑瀹炰緥鍙互琚皟鐢ㄣ€?code>goto鍑芥暟鎺ュ彈涓€涓?code>Label瀹炰緥浣滀负鍙傛暟锛屽苟璋冪敤璇ュ疄渚嬫潵璺宠浆鍒扮浉搴旂殑浣嶇疆銆?/p>
闇€瑕佹敞鎰忕殑鏄紝浣跨敤goto
鍑芥暟鍜?code>Label绫绘潵妯℃嫙goto
璇彞骞朵笉鏄竴涓ソ鐨勫疄璺点€傚湪澶у鏁版儏鍐典笅锛屽彲浠ラ€氳繃缁撴瀯鍖栫紪绋嬬殑鏂瑰紡鏉ユ浛浠d娇鐢?code>goto璇彞銆?/p>
相关问答