详解Python如何在多层循环中使用break/continue

关于break/continue这两个关键字在平常的使用过程中一直比较迷糊。好不容易理解了吧,过段时间不使用好像忘记了什么。这个问题也是很多初学者比较容易提及的问题。

先通过一个简单的单层循环来了解一下这两个关键字的使用。

print('=============单层循环使用=============')

for n in range(10):

  if n == 9:

      print('退出当前循环,当前n = ', n)

      break

  elif n == 4:

      print('跳过当前循环,当前n = ', n)

      continue

  print('当前n = ', n)

下面是执行以后的结果展示。

当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9

根据执行完成的结果可以看出,n = 4时,当前的n值没有被打印,但是它还是往下执行了n = 5以后的打印,这就是continue的作用。

而执行到break的关键字时就直接退出for循环了不会往下继续执行。

同样的方式,将单层循环这次变成双层循环看一下效果。

print('=============双层循环使用=============')

for m in range(10):

  for n in range(10):

      if n == 9:

          print('退出当前循环,当前n = ', n)

          break

      elif n == 4:

          print('跳过当前循环,当前n = ', n)

          continue

      print('当前n = ', n)

  if m == 8:

      break

下面是执行以后的结果展示。

当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9

当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9

当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9

当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9

当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9

当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9

当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9

当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9

当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9

根据结果,可以观察到内部循环的执行次数是9次,在执行到m = 8 时将循环退出了正好m的值只循环到了0-8正好是9次。

而内部循环的break/continue只对内部循环生效,因此得出了结论break/continue只对它对应的当前循环生效。

那如果是三层循环或者更多的层循环呢,效果也是一样的。

print('=============三层循环使用=============')

for i in range(3):

  for j in range(3):

      for k in range(3):

          if k in [1, 2, 3]:

              continue

          print('当前k = ', k)

      if j in [1, 2, 3]:

          continue

      print('当前j = ', j)

  if i in [2, 3]:

      break

  print('当前i = ', i)

同样的只需要在其对应的当前循环中加入break/continue的逻辑控制即可。

=============三层循环使用=============
当前k = 0
当前j = 0
当前k = 0
当前k = 0
当前i = 0
当前k = 0
当前j = 0
当前k = 0
当前k = 0
当前i = 1
当前k = 0
当前j = 0
当前k = 0
当前k = 0

执行完结果以后,i 值对应的循环执行了0、1,j/k值对应的循环只执行了0。所以再一次印证了break/continue只对它自己对应的当前循环生效。

关于详解Python如何在多层循环中使用break/continue的文章就介绍至此,更多相关Python多层循环使用break continue内容请搜索编程宝库以前的文章,希望以后支持编程宝库

启发式搜索在人工智能中起着关键作用。在本章中,您将详细了解它。 AI中的启发式搜索的概念启发式是一个经验法则,它引导我们找到可能的解决方案。人工智能中的大多数问题具有指数性,并且具有许 ...