带有while关键字的无限while循环

时间:2019-02-24 18:41:56

标签: python loops while-loop iteration

我的问题-我不知道为什么会有关键字continue,该关键字应保留3的值并进一步。实际上,我有一个无限循环-也就是说,它使程序崩溃。


tab = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
i = 0
while i < len(tab):
    print(tab[i])
    if tab[i] == 3:
        continue
    i+=1

5 个答案:

答案 0 :(得分:3)

您似乎正在尝试遍历列表,直到找到3,然后找到break。做这样的事情:

items = [1,2,3,4,5]
for item in items:
   if item == 3:
       break

关键字continue将传递到循环的下一个迭代,其中break将停止循环。

答案 1 :(得分:1)

continue关键字在循环的下一次迭代中继续。

对于您而言,它阻止执行语句i+=1

发生了什么事

  1. 通过0,1,2循环就可以了
  2. 当它评估tab[i] = 3时,它将继续循环的下一次迭代,并且i+=1永远不会执行,因此i仍为3,并且永远不会递增。它永远做到这一点。

如果要退出循环,可以使用break语句代替continue

有关更多信息,您可以在https://docs.python.org/3/tutorial/controlflow.html上的continue关键字上阅读

答案 2 :(得分:1)

您正在使用continue关键字,但我认为您想要break

您的代码将永远运行,因为i永远不会迭代3。一旦i == 4,它将输入您的if语句并继续循环。由于继续进行,因此此后再也不会迭代。

答案 3 :(得分:1)

我认为所有答案都假设OP希望使用BEGIN:VCALENDAR VERSION:2.0 PRODID:-//sebbo.net//ical-generator//EN NAME:My ical invite X-WR-CALNAME:My ical invite BEGIN:VEVENT UID:5f44e98484341386e4523ba1@dominname SEQUENCE:0 DTSTAMP:20200825T103548Z DTSTART:20200826T183000Z DTEND:20200826T190000Z SUMMARY:testing meeting DESCRIPTION:meeting Description : testing ORGANIZER;CN="peter":mailto:user1@gmail.com ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;RSVP =TRUE;CN="john";EMAIL=user@gmail.com:MAILTO:user@gmail.com STATUS:CONFIRMED END:VEVENT END:VCALENDAR 而不是break

但是,如果需要在while循环中使用continue,请确保您执行了递增/递减操作 高于 continue语句,因为continue语句跳转到在while循环的顶部,根据您的情况,continue仍为3。

在do-while循环中的i语句分别跳到循环的底部。因此,在您的情况下,您有两个选择,要么在continue之上递增,要么使用for循环。

continue

OR

tab = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
i = -1
while i < len(tab):
    i += 1
    print(tab[i])
    if tab[i] == 3:
        continue
    

答案 4 :(得分:0)

因为您使用的continue关键字会跳过其余代码。 一旦我达到3,它就会跳过i+=1命令。看来您想使用关键字break。您也可以这样做:

for i in tab:
    print(i)
    if i == 3:
        break