我已經查了幾個其他的問題,但他們真的不給我我所期望的答案..嵌套if語句,任何可能的清潔方法?
我的代碼是這樣的..
private function handle()
{
if()
{
if(!condition)
{
if(!condition)
{
if(!condition)
{
if(!condition))
{
if(!condition)
{
if(!condition)
{
if(!condition)
{
if(!condition)
{
if(!condition)
{
code
}
return;
}
return;
}
return;
}
return;
}
return;
}
return;
}
return;
}
return;
}
return;
}
}
在我看來,這是可讀的,但凌亂,可悲的是我還沒有找到真正讓它看起來很「漂亮」的方法。有任何想法嗎?
編輯:每個返回是不同的。編輯2:給我一個答案,謝謝大家!
如果實際代碼存在的唯一位置在最內層範圍內,那麼可以將結構扁平化爲類似於if(first_precondition_failed){return error_1; } if(second_precondition_failed){return error_2; } ... if(last_precondition_failed){return error_x; }/* code * /'。 – DCoder
你只是遞歸的if語句沒有語句塊,直到到達'code'部分,我建議像[Rajat Singhal](http://stackoverflow.com/users/1114536/rajat-singhal)建議的那樣。 – hjpotter92