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