在书中看到loop-and-a-half这个词,字面意思是“循环和一半”,到底是什么意思呢?
其实就是使用break语句跳出循环,而不是在循环的头部跳出。这样就不是完整的执行了整数个循环,最后一个循环只执行了一半就遇break跳出了。这是个人的理解。
为什么要使用loop and a half?
看一个例子。
a = input(‘type a string or ENTER to quit’)
while a:
print(a.upper())
a = input(‘type a string or ENTER to quit’)
这段代码使用while判断是否进入循环,导致必须在while语句之前读取a,造成代码重复。
loop and a half 的风格如下
while True:
a = input('type a string or ENTER to quit)
if not a:
break
print(a.upper())
使用break语句可使代码更简洁,与循环相关的代码都在循环体内,也没有代码重复。
如今,这看起来平平无奇,但是据说在强调结构化编程的年代,使用break是不被推荐,第一种编程风格被认为是更好的选择。
个人猜测,是因为对goto的恐惧导致对break的偏见。