米哈伊尔 发表于 2021-1-13 16:36:54

关于09课,课后题目05的求解


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

各位老师,结合我自己对这段代码的解读,我还是没能够真正理解这段代码的答案。
恳请各位老师帮我看看这么理解对不对,或者错哪里了?

Peteryo01223 发表于 2021-1-13 16:42:51

本帖最后由 Peteryo01223 于 2021-1-13 16:58 编辑

我试着帮助你分析一下。本人也是小白,希望没有误导你。
while True: # 第一层循环,只要是真,就循环。
    while True: # 第二层循环,只要是真,就循环。这是小甲鱼老师的设计,本意为了让大家拓展理解,没有实际的意义,也不会像你推理的,和上一层发生什么关系。
      break # 在本层(第三层)中,结束循环
      print(1) # 在本层中,打印 1,不成功,因为上条break,已经结束了本层(第三层)循环,break后面的本层内容,Python 一律不执行。
    print(2) # 在这一层中,打印 2。至此行代码,本层(第二层)还没有遇到 break,因此,打印2,成功。
    break # 在本层(第二层)中,结束循环,但这个break 不影响上一条的运行。这两层,break 前和beark后,语句的执行完全不同。即:在同一层中,break的前面语句会成功执行,break 后面的语句则不会被执行。
print(3) # 在这一层(第一层)中,打印 3。本层没有遇到 break,打印3,成功。

suchocolate 发表于 2021-1-13 16:44:53

想多了,进入循环和进入后遇到break是两回事。
总之true就进去,break就结束本层循环,break后面同级的语句就不执行了。

逃兵 发表于 2021-1-13 16:57:46

这是考察break的运用了

嵌套使用while循环
内循环:
break
print(1)
先遇到break打断内循环,print(1)不执行 内循环结束,跳出内循环while
外循环:
print(2)
break
先print(2)再break打断外循环,print(2)执行,跳出外循环while

循环外print(3)
print(3)执行
页: [1]
查看完整版本: 关于09课,课后题目05的求解