在C语言中有一种巧妙的技巧可以避免金字塔式代码,方法是将以下代码转换为:
在Python中,最干净的方法是什么?因为Python没有do-while结构。请注意:我并不一定要求在Python中实现do-while循环,而是想要避免上述金字塔式的代码。更新:似乎有些混淆。我使用循环的唯一原因是能够在任何时候中断循环体,这个循环体只会执行一次。本质上,在Python中我正在做的是这样的事情:
我在想是否有更简洁的方法。
if (check1())
if (check2())
if (check3())
do_something();
into:
do {
if (!check1())
break;
if (!check2())
break;
if (!check3())
break;
do_something();
} while (0);
在Python中,最干净的方法是什么?因为Python没有do-while结构。请注意:我并不一定要求在Python中实现do-while循环,而是想要避免上述金字塔式的代码。更新:似乎有些混淆。我使用循环的唯一原因是能够在任何时候中断循环体,这个循环体只会执行一次。本质上,在Python中我正在做的是这样的事情:
while True:
if not check1():
break
if not check2():
break
if not check3():
break
do_domething()
break
我在想是否有更简洁的方法。
while (0)
<- 永远不会进入这个循环 - inspectorG4dgetif(check1() && check2() && check3()) do-something();
将是更好的解决方案。 一旦您进入更复杂的嵌套解决方案,实际上使用do/while时,您的Python实现也是不错的。 - tdelaney