浮云间
原代码:def diedai(size):
size = size + 1
print("循环外size=", size)
while (size<=2):
print("循环内size=", size) # a
diedai(size) # b
# break
print("diedai 函数结束, size=", size)
diedai(1)楼上说的很对, 当你第一次调用 detail()这个函数时, 函数进入while循环, 就没在跳出来, 原因是你在b步传递的size只决定下次调用diedai()函数会不会进入while循环, 并不会真正改变size的值我再补充一点, 首先要知道这个函数逻辑类似递归函数执行结果的前部分为循环外size= 2循环内size= 2 # 第一个"循环内"循环外size= 3diedai 函数结束, size= 3循环内size= 2循环外size= 3diedai 函数结束, size= 3循环内size= 2循环外size= 3diedai 函数结束, size= 3循环内size= 2循环外size= 3diedai 函数结束, size= 3...从第一个"循环内"开始到下一个"diedai 函数结束", 就为一个while循环, 这个循环执行的顺序就是 a b a b a ..., 整个函数一直在执行这两行代码,若将while改为if, 函数就变为递归函数, 当条件不满足时, 就会一层层跳出递归函数