如果程式設計師遇到太多的if else分支,如何處理?

時間 2021-05-10 08:38:59

1樓:扯淡兄

這個問題確實比較籠統。

如果是平行的if...else if...else if...

else... 這種顯然可以轉化成switch case或者查表。(事實上很多編譯器遇到這種寫法自動優化成查表)

如果是遞進的if...else,比如錯誤處理的場景,那麼可以用goto。如果覺得goto 不夠優雅就用goto的變種:do{} while(0)

2樓:陳良喬

上面的回答已經很好了,我想可以補充一點

我猜想你可能是遇到在不同的條件下執行不同的動作,需要用到很長一串if...else

如果這些條件是並列的(比如根據不同天氣穿不同的衣服),可以用上面提到的switch/case方式改寫,這樣會簡化一些,參考《C程式設計伴侶》4.7 使用switch語句實現多分支選擇結構——看天穿衣例子 http://

chenlq.net/books/c-mate

/c-programming-partner-probation-4-7-in-use-a-switch-statement-example-of-multi-branch-selection-structure-see-day-dress.html

而如果這些條件並沒有並列的關係,用設計模式中的狀態模式或者策略模式,可以讓你的程式更優雅一些,參考

看我七十二變:State狀態模式的C#實現http://

chenlq.net/think-talk-w

rite/look-at-the-72-state-state-mode-the-c-implementation.html

搜尋結果 《Refactoring》筆記:switch語句的一種重構http://

3樓:rlei

你問得很籠統,視具體情況不外乎以下幾種辦法:

switch/case

hash表

參考《Refactoring》書中提到的,用OOP方式解決。

程式設計師遇到中年危機有哪些出路?

順勢而為老吳 我以前就是做IT技術支援的,在某通訊公司幹了5年,在33歲的時候果斷告別打工,開始接觸投資理財,後來就成為投資者。程式設計師的中年危機是客觀存在的,如果不能往專案管理 領導者方向發展,或者是往股東方向發展,一定要提前思考這個問題。切記,創業和投資是有風險的,最好有人能帶你一把,否則很辛...

作為程式設計師的你 或者即將成為程式設計師 何時意識到數學的重要性

不存在的 發工資的時候啊。唉為啥到手這點錢,咋和合同的不一樣?哦,合同是稅前是吧,那我算算稅後大概多少?不對啊,加班費呢?哦,沒有加班費?餐補呢?這也沒有?好吧,然後一會發現雖然沒算出多少錢,反正拿到手的這點。 王輝 這個話題總結了幾次了,請看 程式設計和數學本就是一家呀。程式設計有函式,函式需要引...

女程式設計師的男朋友大多數也是程式設計師嗎?

反派角色 Sophia 作為乙個女程式設計師,我個人是不找同行的。找乙個同行的話,就技術水平問題回家也有可能會爭論,感覺會比較累。完善家庭背景我覺得對以後孩子的教育也有好處。不過兩個程式設計師在一起的好處就是收入比較高而且穩定。 有這想法,相同的行業,共同話題比較多。還有點性格好,有耐心這是重點。唉...