Pythonが多重サイクルから飛び出す方法の例


方法1:カスタム異常

# -*- coding:utf-8 -*-
 
"""
  :python    
"""
#   1:     
 
 
class Getoutofloop(Exception):
  pass
try:
  for i in range(5):
    for j in range(5):
      if i == j == 2:
        raise Getoutofloop()
      else:
        print i, '----', j
except Getoutofloop:
  pass

方法2:循環パッケージを関数として、return

# -*- coding:utf-8 -*-
 
"""
  :python    
"""
#   2:     ,return
 
 
def test():
  for i in range(5):
    for j in range(5):
      if i == j == 2:
        return
      else:
        print i, '----', j
 
test()
方法3:for…else…文を使う

# -*- coding:utf-8 -*-
 
"""
  :python    
"""
#   2:for...else...  ,         
 
for i in range(5):
  for j in range(5):
    for k in range(5):
      if i == j == k == 3:
        break
      else:  
        print i, '----', j, '----', k
    else:    # else1
      continue
    break    # break1
  else:      # else2
    continue
  break      # break2
方法3説明:
(1)breakはある重循環から飛び出すことができますが、この重循環の他の外重サイクルから飛び出すことはできません。
例えば、一番内側の第3のループbreakの後、プログラムは第2のループに戻り、第2のループの次のループを実行し続け、そして第3のループは再び実行される。
(2)continueは、あるサイクルをスキップした回数ですが、このサイクルの残り回数は継続します。
(3)for…else:ここでelseブロックのステートメントはforループが完全に実行された後に実行されます。forループがbreakによって実行されると、elseブロックは実行されません。
(4)方法3において、第3のサイクルがi=j=k=3を満たすと、第3のサイクルがbreakによって、並列のelse 1がスキップされ、break 1が実行され、第2のサイクルが生じる
終了すると、else 2がスキップされ、break 2が実行され、第1のサイクルが終了する。
最後に全体のサイクルから跳び出すことを実現します。
for…else加break例:

# -*- coding:utf-8 -*-
 
"""
  :for...else  
"""
 
for i in range(5):
  print i
else:
  print u"        。"
 
for j in range(6):
  for k in range(6):
    print j, k
    if j == 3:
      print u"       break"
      break
  else:
    print u"          。"
else:
  print u"          。"
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。