给出以下代码(不起作用):
while True:
#snip: print out current state
while True:
ok = get_input("Is this ok? (y/n)")
if ok.lower() == "y": break 2 #this doesn't work :(
if ok.lower() == "n": break
#do more processing with menus and stuff
Run Code Online (Sandbox Code Playgroud)
有没有办法让这项工作?或者我是否已经做了一次检查以突破输入循环,然后另一个更有限的检查外部循环以在用户满意的情况下将所有内容分开?
Edit-FYI: get_input是我编写的一个简短函数,支持显示提示和默认值以及所有那些幻想和返回__CODE__
我最近读到了这个问题,它有一个关于在Java中标记循环的解决方案.
我想知道Python中是否存在这样的循环命名系统.我曾多次遇到过需要for从内for循环中突破外循环的情况.通常,我通过将内部循环放在一个返回(以及其他)布尔值的函数中来解决这个问题,该布尔值用作断开条件.但是标记循环的中断似乎要简单得多,我想尝试一下,如果python中存在这样的功能
有谁知道它是否存在?
break在大多数语言中中断for循环,但在嵌套循环的情况下,我从未遇到过第n次中断.
1.用任何语言都有这样的东西吗?
2.如果是这样,它的正确名称是什么?
如果没有,为什么?
NB.我不是在寻找解决方法.
关于第3点.我知道最接近的是goto,它不应该被使用,因为它会导致意大利面条代码(Python只在一个笑话模块中使用它),但这似乎是一个不同的问题,作为标记内部中断的布尔变量,捕获一个引发自定义错误或将块移动到一个函数以便与返回中断是更复杂的(在代码中的行号和变量方面).
(从理论的角度来看,这是一个好奇的问题,但如果它有帮助,我主要用Python,Matlab和JS编写代码.我知道Perl,Pascal和Basic,但我只知道C++的基础知识并且很少知道机器代码.)