爛 code 收集器//海海 if-else

  1. 爛 code 收集器//海海 if-else

爛 code 收集器//海海 if-else

原文連結: https://darkblack02.blogspot.com/2018/07/code-if-else.html
移植時的最後更新日期: 2020-02-28T10:41:21.353+08:00

今天要來說說這個寫法的故事


while(true)
{
if (xxx){
//…
break;
}
if (xxx){
//…
break;
}
if (xxx){
//…
break;
}
if (xxx){
//…
break;
}
if (xxx){
//…
break;
}
}
先不要往下看,先猜猜這樣寫是為了什麼




心中有答案了嗎?


故事開始囉

 一般來說,常見的 if-else 會像這樣

if (xxx)
//…
else if (xxx)
//…
else if (xxx)
//…
else if (xxx)
//…
else
//…
這樣其實只能算是常見的小海。而且經過實驗,某些 complier 還有 if-else 數量上的限制。
(有必要實驗這個時,也是很天才的code) 


經過天才的思考,捨棄了上述的方式,改用下面這個方式。

while(true)
{
if (xxx){
//…
break;
}
if (xxx){
//…
break;
}
if (xxx){
//…
break;
}
if (xxx){
//…
break;
}
if (xxx){
//…
break;
}
}

還是 if-else 海,雖然突破了某 complier 的數量限制,但是卻大幅犧牲了可讀性

if (xxx){
//… break;
}
if (xxx){
//… break;
}
if (xxx){
//… break;
}
//…(超過限制的if-else)
break;
}

無言的聲音:
用個 switch-case 有這麼困難嗎?加個enum嘛!
也許該考慮用工廠模式呀!!