Re: [請益] 很多層迴圈和if 怎麼寫比較好整理

看板Soft_Job作者 (沉默是金。)時間13年前 (2011/07/16 15:59), 編輯推噓10(10036)
留言46則, 16人參與, 最新討論串5/16 (看更多)
※ 引述《ronnywang (退伍啦)》之銘言: : 原來的四層只剩下兩層 : : 再搭配 function 的 return 來中斷的話 : 甚至用 Exception : 其實程式需要寫到三層以上的機會很少的 : 不過重點還是在改寫後可讀性不能受到影響 <...........> : ※ 編輯: ronnywang 來自: 114.25.235.14 (07/14 22:10) : → timTan:盡量換個角度想,多用extract mehtod, 可以讓code變漂亮!! 07/14 23:37 : → timTan:我也喜歡這麼做。 07/14 23:37 : 推 Gaitz:簽名檔很讚XD 07/15 11:28 : → viable:你還是沒解決到問題 07/15 12:07 : → viable:你的書上有些switch這個字吧 玩線上遊戲也要看看書阿 07/15 12:15 : → viable:我覺得你沒有把我的問題看完 我說過if底下沒有再包一層if 07/15 13:28 : → viable:這不相干的東西 你可不可以另開一篇 不要誤導原本問題方向 07/15 13:30 回文基本上就是另開一篇了,要離題也好要討論本文也好, 基本上不作限制,也沒有誤不誤導的問題。 有本事的儘管自己問個「好問題」讓人想針對問題回答。 : → idoz5:就算原PO不是針對樓上的方式去求解,但這篇所提出來的技巧 07/15 22:25 : → idoz5:也還是有解決同樣的問題阿。樓樓上的推文有失公正噢 07/15 22:26 : 推 gmoz:推樓上 07/16 11:54 : 推 Davidjcan:推 07/16 12:54 : → viable:既然跟我的問題不相干 跟我談什麼公正?我當是法官喔 07/16 13:41 : → viable:就算當法官也要收錢財給你公正的 07/16 13:43 : → viable:原PO一來我和你不熟 二來你不是"高手" 請別對號入座XD 07/16 13:45 : → viable:看到這篇居然能有幫助的人 那很為你們開心 也恭喜你們阿 07/16 13:48 : → viable:能讓你們入門書少看好幾頁 真是日行n善呢 07/16 13:51 : → viable:你們教授收了學費是都交你們什麼 07/16 14:01 : → viable:還是你們還是高中生 正在預習課程 那真的是很用功上進 加油 07/16 14:03 : → viable:還有 我覺得你們有失公正這句話 有批評的意思 07/16 14:15 : → viable:已經寫要請教'高手'了 學生請不要來湊熱鬧 此非soft_school 07/16 14:17 : → viable:'另開一篇'四個字是沒看到嗎? 這有公不公正的問題嗎? 07/16 14:27 : → viable:既沒公不公正的問題就沒有所謂的失公正 請別造口業 卍(*04) 07/16 14:30 : → viable:switch是你們人生重要的里程碑 所以你們要多推一下 07/16 14:57 : → viable:以下開放推文 紀念人生的里程碑 07/16 14:58 那你列個高手條件清單吧,大家比較好判斷自己是不是高手, 畢竟板上目前沒有規定發文要附薪資單或在職證明。 我自己也是從學生時代就看板,一直到現在出社會幾年了, 基本上我不覺得學生就不應該/不能夠發表意見。 出來發文的怕人回應的話,我會建議是別發文了。 ----------------------------------- 我的感覺是你問了一個超過遠比你想的還複雜的問題, 你問的這個問題的形式可能發生在任何多條件式的狀況, 而且這個條件判斷可以小從一個boolean 大從多個service 互相判斷, 視情況,簡單可以從 if-elseif 就滿足(根本不需要改), 再複雜一些些,簡化到一層的狀況透過 switch 去處理, 雖然有些人討厭 switch 的 fallback 特性帶來的複雜度而堅持不用。 再複雜一些些,可以用 State class 或包過得 Dispatcher 觀念做事。 如果你問我,照你原本的描述,我也不會回應你 switch 這個答案, switch 並無助於降低描述這件事情的複雜度,只是語法上的表示不同而已。 說穿了,就是看你覺得哪個看得比較爽的問題, 我是不覺得 switch 看起來會比一堆 if 漂亮,不過這很主觀。 你的環境如果在允許的狀況下,應該是要進行狀態物件的包裝會比較合理。 我是覺得沒有比設計一個單一的 method call , 然後透過 method 名稱說明他想幹嘛更漂亮的了, 但也有些事情是你根本省不掉的,所以這非常依賴於你的實作。 但問題是我們對於你的環境一無所知,我們不知道你的限制, 舉理,你要在十分鐘內解決這個問題/你以後不會再碰這段程式碼, 或是你只是想找程式可以寫成什麼樣子,我們無從得知,因為這是個壞問題。 我是認為只有「提問的高手」會有「回答的高手」自動上門來... 即使我認為你沒有盡到你問問題的責任,我們不會怪你, 我們不會追著你說。「你的確問了一個好問題嗎?」 當然,我們更不會跟你說, 「即使是學生幫忙寫作業也要欠人情的,我回答問題也要算鐘點費的。」 你的問題我覺得很多學生面對同樣的狀況,都可以問出比你更好的問題。 文末我想直接引用幾句話回應。 提問的智慧(這被轉到爛了,如果沒看過的話值得看一下。) http://mis.ndhu.edu.tw/docu/question.htm ----------------------------------- 小心別問錯了問題。如果你的問題基於錯誤的假設,普通黑客(J. Random Hacker) 通常會用無意義的字面解釋來答復你,心裏想著“蠢問題...”, 希望著你會從問題的回答(而非你想得到的答案)中汲取教訓。 決不要自以為夠資格得到答案,你沒這種資格。畢竟你沒有為這種服務支付任何報酬。 你要自己去“掙”回一個答案,靠提出一個有內涵的,有趣的, 有思維激勵作用的問題--一個對社區的經驗有潛在貢獻的問題, 而不僅僅是被動的從他人處索要知識--去掙到這個答案。 另一方面,表明你願意在找答案的過程中做點什麼,是一個非常好的開端。 “誰能給點提示?”、“我這個例子裏缺了什麼?”以及“我應該檢查什麼地方?” 比“請把確切的過程貼出來”更容易得到答復。因為你顯得只要有人指點正確的方向, 你就有完成它的能力和決心。 ----------------------------------- - 謙遜絕沒有害處,而且常幫大忙 彬彬有禮,多用“請”和“先道個謝了”。 讓大家都知道你對他們花費時間義務提供幫助心存感激。 然而,如果你有很多問題無法解決,禮貌將會增加你得到有用答案的機會。 ----------------------------------- -- 我:一半的日子讓你說,我聽你說你的所有______________________________________ ______________________________________一半的日子我想說,對你說過去的所有:我 _______________________________________________________ 在討論中妥善扮演兼具聆聽與分享的角色,是我們一生的課題。 _______________________________________________________ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 12.208.243.66

07/16 16:04, , 1F
推一下~而且太複雜的東西用文字來討論~有時候實在不是很好
07/16 16:04, 1F

07/16 16:05, , 2F
面對面講都可能會誤解了~更何況是死的文字讓活人解讀~就像
07/16 16:05, 2F

07/16 16:06, , 3F
是常有人說"看書要先挑你看得懂的"~如果都看不懂作者在講
07/16 16:06, 3F

07/16 16:07, , 4F
什麼~通常不是東西太難~而是作者和讀者有代溝...
07/16 16:07, 4F
※ 編輯: TonyQ 來自: 12.208.243.66 (07/16 16:17)

07/16 16:16, , 5F
看到這篇才知道有這麼精彩的推文啊 (大口茶)
07/16 16:16, 5F

07/16 16:17, , 6F
反正她根本沒把東西拿出來, 又怎能批評別人的建議不能用
07/16 16:17, 6F

07/16 16:17, , 7F
, 真是個寶.
07/16 16:17, 7F

07/16 16:17, , 8F
推!! 提到重點。
07/16 16:17, 8F
※ 編輯: TonyQ 來自: 12.208.243.66 (07/16 16:21)

07/16 16:34, , 9F
我也覺得原波問題根本沒問到位,人家針對她的問題回答
07/16 16:34, 9F

07/16 16:36, , 10F
她才又說可是她的情況有多複雜多奇怪
07/16 16:36, 10F

07/16 16:40, , 11F
沒回答到她要的解答態度還那麼差
07/16 16:40, 11F

07/16 16:40, , 12F
我在想要不是她先自稱小妹加上本版不能開噓的話
07/16 16:40, 12F

07/16 16:41, , 13F
早被噓爆了
07/16 16:41, 13F

07/16 16:42, , 14F
看奇哥的文還比較值得一點 (~^O^~)
07/16 16:42, 14F

07/16 17:03, , 15F
最討厭裝人妖來發問的
07/16 17:03, 15F

07/16 17:36, , 16F
Rokund你性別歧視 你認為小妹就應該幫你到茶水嗎?
07/16 17:36, 16F

07/16 17:49, , 17F
推 而且看不出來有人有性別歧視 只看到有人見笑轉生氣?
07/16 17:49, 17F

07/16 17:59, , 18F
其實看到他的推文我就不續看他的文章了,板大精闢。
07/16 17:59, 18F

07/16 19:19, , 19F
推T大,出來問問題,態度就該謙虛點..
07/16 19:19, 19F

07/16 19:33, , 20F
Rokund:我希望他另開一篇 這叫態度差?
07/16 19:33, 20F

07/16 19:36, , 21F
妳講的可不只有另開一篇而已
07/16 19:36, 21F

07/16 19:37, , 22F
Rokund:您言下之意是說沒得到答案 就得要對你鞠躬哈腰?
07/16 19:37, 22F

07/16 19:38, , 23F
就這評論 rokund,會寫程式還真是ㄏ一ㄠˊ ㄅㄞ阿
07/16 19:38, 23F

07/16 19:38, , 24F
態度不要那麼差 == 鞠躬哈腰? 邏輯這樣用的?
07/16 19:38, 24F

07/16 19:42, , 25F
用詞委婉點就好囉 您的言論對於"部分"人覺得有命令的FU
07/16 19:42, 25F

07/16 19:42, , 26F
所以說我態度差 是希望能得更好一點的態度?
07/16 19:42, 26F

07/16 19:44, , 27F
我用問句 你們說我這樣有命令的fu?
07/16 19:44, 27F

07/16 19:44, , 28F
你和他角色對調 他問問題你回答 對方說 你沒解這問題
07/16 19:44, 28F

07/16 19:44, , 29F
我會建議妳這篇文章看仔細一點 想想T大想表達的
07/16 19:44, 29F

07/16 19:44, , 30F
你要不要回去看XXXX這書上怎寫...etc 請問您做何感受
07/16 19:44, 30F

07/16 19:45, , 31F
你們在老闆面前有那麼乖喔 會把那當一回事 我現在才知道
07/16 19:45, 31F

07/16 19:46, , 32F
不好意思我不知道你們這麼乖
07/16 19:46, 32F

07/16 19:46, , 33F
不好意思我也不知道妳只會酸人卻不會正視答案呢
07/16 19:46, 33F

07/16 19:49, , 34F
唉 那就無視我的發言吧 潛水去
07/16 19:49, 34F

07/16 19:52, , 35F
'答案'?程式的東西若有唯一解 那就有自動寫程式的程式啦= =
07/16 19:52, 35F

07/16 19:53, , 36F
妳還是好好想想T大這篇想表達的東西吧
07/16 19:53, 36F

07/16 19:57, , 37F
一個值得尊敬值得學習的人 當然沒道理不跟他效法
07/16 19:57, 37F

07/16 20:08, , 38F
只是他站內信說的道理 sorry不知道為什麼 我沒服
07/16 20:08, 38F

07/16 21:25, , 39F
我覺得每次看板主的文章都是一種享受~
07/16 21:25, 39F

07/17 00:08, , 40F
推Obb,版主文很享受
07/17 00:08, 40F

07/17 00:13, , 41F
結果原PO自己一直把這篇文的主題岔開XDDDD
07/17 00:13, 41F

07/17 00:15, , 42F
受教了.........推
07/17 00:15, 42F

07/17 00:23, , 43F
如果一個值得尊敬值得學習的人說的道理你不知為何沒服時
07/17 00:23, 43F

07/17 00:23, , 44F
可以考慮虛心的檢討一下自己, 這樣才能找出原因,不用sorry
07/17 00:23, 44F

07/17 06:40, , 45F
我沒說我認為他值得尊敬啊
07/17 06:40, 45F

07/18 00:41, , 46F
提問的智慧 給個推~
07/18 00:41, 46F
文章代碼(AID): #1E8KJPhA (Soft_Job)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 16 篇):
文章代碼(AID): #1E8KJPhA (Soft_Job)