你提到的“避免太多层” 就是所谓的nested structure
而你的改良方案 称之为guard clause
google这两个词 会有许多的讨论可以参考
关于两种写法 我的心得大概是:
程式码的外观其实直接说明了某些事情。
guard clauses的code看起来就像在说:如果发生这件事,赶快处理完、然后滚吧。
一串if/else if/else像是在说:你看,各个情况都一样重要、
所以大家都在一样深层的巢状结构里面,真正重要的code跟某些狗屁情况一样重要,
所以他们一样在这恐怖程式码的内部第N层!
到底该怎么写还是看实际情况。不妨都试试,看当下哪个适合?
我之前思考这个问题时 有打出一整篇网志
http://blog.turn.tw/?p=83
供您参考