lzb1001 发表于 2023-4-24 07:08:18

关于break

本帖最后由 lzb1001 于 2023-4-24 07:18 编辑

while True:
        while True:
                break
                print(1)
        print(2)
        break
print(3)


返回结果:

2
3

而:

while True:
    while True:
      break
      print(1)
    break
    print(2)
    break
print(3)

运行后:

3


分别怎么理解?

sfqxx 发表于 2023-4-24 07:17:11

本帖最后由 sfqxx 于 2023-5-20 15:08 编辑

该代码段是一个嵌套的无限循环,它的执行流程如下:

1. 进入 while True 循环的第一层,执行到第2行时进入第二层 while True 循环。
2. 在第二层 while True 循环中,执行到第3行时遇到 break 关键字,跳出内层循环,
   然后控制权返回到外层循环继续执行,因为内层循环已经跳出,所以不会执行第4行的代码。
3. 在外层循环中,执行到第6行时遇到 break 关键字,跳出整个循环,
   然后执行第7行的 print(3) 语句,输出结果为 3。
   
因此该代码最终输出的结果为:
2
3


而在第二个代码示例中,我们在第二个内部循环之后立即使用了 break 语句,因此 print(2) 和外部的 break 语句都不会被执行。最终,只有 print(3) 被输出。

总之,break 语句可以用于某个循环中止并退出该循环,而外部的循环将继续进行。因此,在编写代码时需要注意循环的逻辑结构和控制语句的位置,以确保程序能够按照预期的方式执行。

lzb1001 发表于 2023-4-24 07:24:14

sfqxx 发表于 2023-4-24 07:17
该代码段是一个嵌套的无限循环,它的执行流程如下:

1. 进入 while True 循环的第一层,执行到第2行时进 ...

那下面这个呢:

while True:
        while True:
                break
                print(1)
        break
        print(2)
        break
print(3)

isdkz 发表于 2023-4-24 10:05:34

lzb1001 发表于 2023-4-24 07:24
那下面这个呢:

while True:


这个代码段的执行流程如下:

1. 进入第一层的 while True 循环,执行到第2行时进入第二层的 while True 循环。
2. 在第二层的 while True 循环中,执行到第3行时遇到 break 关键字,跳出内层循环,然后控制权返回到外层循环继续执行。因为内层循环已经跳出,所以不会执行第4行的代码。
3. 在外层循环中,执行到第6行时遇到 break 关键字,跳出整个循环。
4. 执行第9行的 print(3) 语句,输出结果为 3。

因此,该代码最终输出的结果为:
3

lzb1001 发表于 2023-4-24 12:05:55

isdkz 发表于 2023-4-24 10:05
这个代码段的执行流程如下:

1. 进入第一层的 while True 循环,执行到第2行时进入第二层的 while Tru ...

第6行时遇到 break 关键字?
4. 执行第9行的 print(3) 语句……?

行数是不是搞错了?

isdkz 发表于 2023-4-24 12:15:31

lzb1001 发表于 2023-4-24 12:05
第6行时遇到 break 关键字?
4. 执行第9行的 print(3) 语句……?



对,数多了一行{:10_277:}

陶远航 发表于 2023-5-20 11:13:51

第一段代码中,存在一个外层循环和一个内层循环。由于内层循环的 break 语句会导致内层循环直接从第一次迭代开始就跳出了,所以内层循环只迭代了一次,没有输出任何结果。然后在内层循环下方的 print(2) 语句处打印了数字 2,最后通过 break 跳出了外层循环,打印了数字 3。

第二段代码中,同样存在一个外层循环和一个内层循环。但是在内层循环中,使用的是带有 break 的 if 语句,因此即使条件满足,也只会跳出 if 语句而不是整个内层循环。在 if 语句下方打印了数字 2,接着通过 break 跳出了外层循环,最后打印了数字 3。

sfqxx 发表于 2023-5-20 15:08:28

该代码段是一个嵌套的无限循环,它的执行流程如下:

1. 进入 while True 循环的第一层,执行到第2行时进入第二层 while True 循环。
2. 在第二层 while True 循环中,执行到第3行时遇到 break 关键字,跳出内层循环,
   然后控制权返回到外层循环继续执行,因为内层循环已经跳出,所以不会执行第4行的代码。
3. 在外层循环中,执行到第6行时遇到 break 关键字,跳出整个循环,
   然后执行第7行的 print(3) 语句,输出结果为 3。
   
因此该代码最终输出的结果为:
2
3


而在第二个代码示例中,我们在第二个内部循环之后立即使用了 break 语句,因此 print(2) 和外部的 break 语句都不会被执行。最终,只有 print(3) 被输出。

总之,break 语句可以用于某个循环中止并退出该循环,而外部的循环将继续进行。因此,在编写代码时需要注意循环的逻辑结构和控制语句的位置,以确保程序能够按照预期的方式执行。

页: [1]
查看完整版本: 关于break