继续无法正常工作

Posted

技术标签:

【中文标题】继续无法正常工作【英文标题】:Continue isnt working properly 【发布时间】:2016-08-11 14:50:16 【问题描述】:

我确实需要帮助来解决我的代码。 以下 python 代码“继续”无法正常工作

dicemp = '12345':''
while(1):
    choice =  int(input("Please enter your choice\n"))

    if (choice == 1):
        empno = input("Enter employee number: ")
        for i in dicemp.keys():
            if i == empno:
                print("employee already exists in the database")
                continue
        print("Hello")

输出:

请输入您的选择

1

输入员工编号:12345

员工已存在于数据库中

你好

所以对于上面的代码,如果我给相同的员工编号。 12345 它将进入 if 块并打印消息“员工已存在于数据库中”之后它应该从开始继续,但在这种情况下它也打印“你好”。

【问题讨论】:

循环结束时将打印“hello”。无论员工是否已存在于数据库中,循环都会结束。 有 2 个循环。 for 循环终止后,它会打印 Hello。 continue 适用于您的 for 循环,而不适用于 while 那么print语句应该在循环中 那么我应该如何使它适用于while循环,任何建议。如果员工没有,我希望循环重新开始。已经存在 顺便说一句:for i in dicemp.keys(): if i == empno: 可以只替换为 if empno in dicemp: 【参考方案1】:

您的continue 正在将for 循环移动到下一次迭代,这无论如何都会发生。如果你需要继续外循环,你可以这样做:

while True:
    choice = int(input("Please enter your choice\n"))

    if choice == 1:
        empno = input("Enter employee number: ")
        found = False
        for i in dicemp:
            if i == empno:
                print("employee already exists in the database")
                found = True
                break
         if found:
             continue
         print("Hello")

现在continuefor 循环之外,所以它将继续外循环。

您可以将其简化为:

while True:
    choice = int(input("Please enter your choice\n"))
    if choice==1:
        empno = input("Enter employee number: ")
        if empno in dicemp:
            print("employee already exists in the database")
            continue
        print("Hello")

并完全摆脱内部循环。

【讨论】:

是的!我的坏..我是编程新手,有很多错误:P

以上是关于继续无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

旋转无法正常工作 - webview

使用 QStyledItemDelegate 验证 QTreeWidget 的特定列无法正常工作

无法让 onChanged 与 GetX 一起正常工作

Apple ITunes AppStore客户评论rss端点无法正常工作

AWS EC2 上的 Apache VirtualHosts 无法正常工作

无法理解循环中的“继续”功能是如何工作的? [关闭]