如何让continue语句重启整个while循环而非仅跳过if分支?
问题解答:让continue重启while循环
你当前代码里的continue本质上已经是作用于外层while循环的——它会跳过当前迭代中try块剩余的代码(也就是quantity = int(...)那行),直接回到while的条件判断,开启下一次循环(重新执行name = input(...))。
如果你的代码没达到预期,大概率是缩进错误导致continue的作用域不对。检查代码缩进,确保continue处于while循环的作用域内,且属于if块的一部分,正确的代码结构应该是:
continue_bool = True used_names = ["Alice", "Bob"] while continue_bool: try: name = input("Name (str): ") if name in used_names: print("This name is already in use") continue # 此continue直接关联while循环,触发后重启整个循环 quantity = int(input("quantity (int): ")) # 这里可以添加后续逻辑,比如将name加入used_names、处理quantity等 except ValueError: print("请输入有效的整数")
你之前误以为if (name in used_names)是独立循环,这是误解——if是条件判断语句,并非循环结构,continue只能作用于最近的循环(这里就是外层的while)。
如果想要更清晰的逻辑,也可以把循环内的输入逻辑封装成函数,但核心还是保证continue的缩进正确,关联到目标while循环。
内容的提问来源于stack exchange,提问作者Daniel Statler
相关产品推荐
相关产品推荐

