打破巢狀循環:一種綜合方法
嵌套循環是一種基本的程式結構,但過早退出它們可能具有挑戰性。在許多語言中,傳統的解決方案涉及拋出異常,這可能會導致程式碼難看。然而,還有更優雅的方法可用。
引入 'break' 和 'else' 結構
一種方法是使用 'break' 和 'else'構造。 「break」語句立即退出它所在的最內層迴圈。 「else」語句放在「for」迴圈之後時,僅當迴圈完成且未遇到「break」時才執行。
例如,當「x」和「y」的乘積超過50 時,以下程式碼會跳出巢狀循環:
for x in range(10): for y in range(10): print(x * y) if x * y > 50: break else: continue # only executed if the inner loop did NOT break break # only executed if the inner loop DID break
這種方法可以避免引發異常並提供更清晰的程式碼結構。
對更深循環的擴展
「break」和「else」結構對於更深的循環同樣有效。例如,當「x」、「y」和「z」的乘積等於30 時,以下程式碼將跳出最外層循環:
for x in range(10): for y in range(10): for z in range(10): print(x, y, z) if (x * y * z) == 30: break else: continue # inner loop did NOT break break # inner loop DID break else: continue # middle loop did NOT break break # middle loop DID break
這個優雅的解決方案允許精確控制循環執行,增強程式碼的可讀性和可維護性。
以上是如何有效地打破程式碼中的嵌套循環?的詳細內容。更多資訊請關注PHP中文網其他相關文章!