为啥它会忽略我在 for 循环中的继续? [关闭]

Posted

技术标签:

【中文标题】为啥它会忽略我在 for 循环中的继续? [关闭]【英文标题】:Why does it ignore my continue in the for-loop? [closed]为什么它会忽略我在 for 循环中的继续? [关闭] 【发布时间】:2020-01-09 22:06:51 【问题描述】:
import pygame
import player

play = player.player()
pygame.init()
time = pygame.time.Clock()
key = 0
move = ""
List =[]
pygame.display.set_mode((100, 100))
while True:
    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            time_down = pygame.time.get_ticks()
            if event.key == pygame.K_LEFT:
                move = "l"
            if event.key == pygame.K_RIGHT:
                move = "r"
            if event.key == pygame.K_DOWN:
                move = "d"
                print('UNTEN')
            if event.key == pygame.K_UP:
                move = "u"
            if event.key == pygame.K_ESCAPE:
                break
            else:
                continue
        key += 1
        play.handlerevent(event)
        if event.type == pygame.KEYUP:
            time_elapsed = (pygame.time.get_ticks() - time_down) / 1000.0
            print("Nummer: ", key, "Zeit: ", time_elapsed)
            tmp = (move, key)
            List.extend(tmp)

您好,我是新来的,想知道为什么我的 for 循环对 continue 没有反应。它进入 else 分支。但只是忽略了继续。

【问题讨论】:

是什么让您认为continue 被忽略了? 例如,如果我按“a”“b”或“c”,我下面的代码仍在执行中 【参考方案1】:

我怀疑你把它弄反了:continue 在不应该执行的时候被执行。

您需要将elif 用于您的条件序列。您的 else: 块仅与最后一个 if 条件相关联。因此,如果键是K_LEFT,它将进入else: 块并继续,而不是执行循环的其余部分。

            if event.key == pygame.K_LEFT:
                move = "l"
            elif event.key == pygame.K_RIGHT:
                move = "r"
            elif event.key == pygame.K_DOWN:
                move = "d"
                print('UNTEN')
            elif event.key == pygame.K_UP:
                move = "u"
            elif event.key == pygame.K_ESCAPE:
                break
            else:
                continue

这样,else: 块将仅在 if 条件都不成功时执行。

【讨论】:

我试过了,没区别,else情况下我也打印了,打印正在执行,但继续没有。 我的休息也发生了同样的事情 您确定您了解continue 的作用吗?这意味着它会跳过以key += 1 开头的所有内容,并进入下一个事件。 我很抱歉,我认为contnue 会进入下一个 for 循环

以上是关于为啥它会忽略我在 for 循环中的继续? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

为啥 If 语句不适用于 selenium 中的 for 循环

为啥for循环遍历python中的1个项目? [关闭]

Cuda内核中的大型for循环不适用于大型数组[关闭]

为啥 LaTeX 会忽略文档类中的字体大小 [关闭]

组件卸载时停止执行我的 React for 循环

由于 continue 而忽略了数组 for 循环中的基本 else 语句