continue
和break
所描述的是“什么时候不做什么”,所以为了读懂二者所在的代码,我们需要在头脑里将他们取反。
其实最好不要让这两个东西出现,因为我们的代码只要体现出“什么时候做什么”就好了,而且通过适当的方法,是可以将这两个东西消灭掉的:
如果出现了continue,只需要把continue的条件取反即可
我们可以看到,通过判断字符串里是否含有“bad”
这个prefix
来过滤掉一些值。其实我们是可以通过取反,来避免使用continue
的:
消除while
里的break:
将break
的条件取反,并合并到主循环里
在while
里的break
其实就相当于“不存在”,既然是不存在的东西就完全可以在最开始的条件语句中将其排除。
while
里的break:
取反并合并到主条件:
在有返回值的方法里消除break:
将break
转换为return
立即返回
有人喜欢这样做:在有返回值的方法里break之后,再返回某个值。其实完全可以在break的那一行直接返回。
遇到错误条件直接返回:
这样写的话不用特意声明一个变量来特意保存需要返回的值,看起来非常简洁,可读性高。