背景:
在学习 JavaScript 的时候,看到 JS 中有 label 语句,一般都用于 for 循环,由 continue 或 break 引用;使用 label 语句可以方便跳出 for 的多层循环;然后想到 Python 要如何实现 for 循环的多层跳出呢?以前一直没有考虑这个问题。
巧用 for ... else ... 解决(也是参考了https://blog.csdn.net/u012814856/article/details/78723071)
首先看下 for ... else ... 的用法,else 是在 for 循环完成之后才运行的;
>>> for i in range(3):
... print(i)
... else:
... print('else content')
...
0
1
2
else content
如果我们在 for 循环中使用了 break 会怎么用?
>>> for i in range(3):
... break
... else:
... print('else content')
...
可以看到 'else content' 并没有输出,也就是说没有运行 else 语句。
可以将这个特性用于跳出 for 的多层循环:
>>> num = 0
>>> for i in range(10):
... for j in range(10):
... if i==5 and j==5:
... break
... num += 1
... else:
... continue
... break
...
>>> num
55