君子好逑 发表于 2020-2-9 18:16:54

为什么第一个程序不行而第二个行

第一个程序:
num=0
print(num)
while num<=100:
    if num%2==0:
      continue
    elif num%2==1 :
      print(num,end=' ')
    num+=1
第二个程序:
num=0
print(num)
while num<=100:
    num+=1
    if num%2==0:
      continue
    elif num%2==1 :
      print(num,end=' ')

zltzlt 发表于 2020-2-9 18:19:51

由于 0 % 2 等于 0,所以执行 continue。又因为 num % 2 是 0 % 2 等于 0,所以执行 continue……

程序就会陷入死循环。

君子好逑 发表于 2020-2-9 18:28:49

貌似不是很明白{:10_269:}

君子好逑 发表于 2020-2-9 18:29:19

zltzlt 发表于 2020-2-9 18:19
由于 0 % 2 等于 0,所以执行 continue。又因为 num % 2 是 0 % 2 等于 0,所以执行 continue……

程序 ...

为什么执行continue就会进入死循环

zltzlt 发表于 2020-2-9 18:32:36

君子好逑 发表于 2020-2-9 18:29
为什么执行continue就会进入死循环

continue 表示进行下一轮循环。由于第一段程序中 num % 2 一直为 0,为 0 就 continue,因此程序陷入了死循环。

君子好逑 发表于 2020-2-9 18:32:41

zltzlt 发表于 2020-2-9 18:19
由于 0 % 2 等于 0,所以执行 continue。又因为 num % 2 是 0 % 2 等于 0,所以执行 continue……

程序 ...

ok,大佬,我好像懂了

君子好逑 发表于 2020-2-9 18:35:01

zltzlt 发表于 2020-2-9 18:19
由于 0 % 2 等于 0,所以执行 continue。又因为 num % 2 是 0 % 2 等于 0,所以执行 continue……

程序 ...

是应为进入循环后首先判断num%2=0%2=0,结束此轮循环,所以不执行num+=1语句,所以num始终为零,因此陷入死循环

zltzlt 发表于 2020-2-9 18:39:13

君子好逑 发表于 2020-2-9 18:35
是应为进入循环后首先判断num%2=0%2=0,结束此轮循环,所以不执行num+=1语句,所以num始终为零,因此陷入 ...

对{:10_275:}

linczhw 发表于 2020-2-9 19:33:07

君子好逑 发表于 2020-2-9 18:29
为什么执行continue就会进入死循环

因为执行了continue,后面的num+=1就不会执行
页: [1]
查看完整版本: 为什么第一个程序不行而第二个行