你提到的「避免太多層」 就是所謂的nested structure
而你的改良方案 稱之為guard clause
google這兩個詞 會有許多的討論可以參考
關於兩種寫法 我的心得大概是:
程式碼的外觀其實直接說明了某些事情。
guard clauses的code看起來就像在說:如果發生這件事,趕快處理完、然後滾吧。
一串if/else if/else像是在說:你看,各個情況都一樣重要、
所以大家都在一樣深層的巢狀結構裡面,真正重要的code跟某些狗屁情況一樣重要,
所以他們一樣在這恐怖程式碼的內部第N層!
到底該怎麼寫還是看實際情況。不妨都試試,看當下哪個適合?
我之前思考這個問題時 有打出一整篇網誌
http://blog.turn.tw/?p=83
供您參考