[請益] 有沒有更好的撰寫方法

看板Programming作者 (腦內補完達人)時間14年前 (2010/11/08 19:39), 編輯推噓4(4011)
留言15則, 6人參與, 最新討論串1/2 (看更多)
問題: 有三項獨立的檢查,但是要先開啟該項檢查才會進入 只要其中一項檢查錯誤程式就結束 我自己的寫法 if(Check_A = true) xxxx xxxx if(Check_Result_A = false) msg = "Check_A "; goto Failed; if(Check_B = true) xxxx xxxx if(Check_Result_B = false) msg = "Check_B "; goto Failed; if(Check_C = true) xxxx xxxx if(Check_Result_C = false) msg = "Check_C "; goto Failed; if(msg == "") msg = "Success"; Failed: msg = msg+"Failed"; 目前跑起來沒甚麼問題,但是總覺得是很笨的方法(似乎不是唯一解XD) 希望板上的高手們可以指點拙者在下 如有寫得不清楚的地方請多包涵 m(_ _)m -- Arooba:不好意思~我是不知所謂的囧人~ 謎:實不相瞞~看閣下從頭髮到腳指甲沒一處不入囧人的型格 Arooba:那又如何? 謎:也就是閣下注定囧一輩子~ Arooba:( ̄皿 ̄)我不想理你~我要睡覺了~ 謎:.......醒醒吧!阿囧! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.96.111.65

11/08 20:53, , 1F
可以用 if... else... 會更好些.
11/08 20:53, 1F

11/08 20:54, , 2F
能用 switch 也會好一些.
11/08 20:54, 2F

11/08 20:54, , 3F
你每個check都用二個if, 是真的浪費了.
11/08 20:54, 3F
因為有可能執行兩個check(ex:A & C)那麼if else只能跑一個 (以下是我解釋您的if else) if(checkA) elseif(checkB) else check C 這樣的話只能執行一項檢查(當然也可以在if內在加if) switch也是同樣的道理,如有解釋錯請指正在下 使用第二個if主要是檢查錯誤用來跳過中間的程式碼 我解釋不周或是不清楚的地方請多包涵 ※ 編輯: AROOBA 來自: 220.228.246.224 (11/08 21:03)

11/08 21:24, , 4F
包成class並且存進去container?
11/08 21:24, 4F

11/09 07:23, , 5F
為什麼可能執行兩個check(ex:A & C)
11/09 07:23, 5F

11/09 07:23, , 6F
這代表b錯誤 不是應該程式結束嗎?
11/09 07:23, 6F

11/09 07:23, , 7F
喔我看錯了XD
11/09 07:23, 7F

11/09 23:35, , 8F
一次要檢查2個以上的check就另當別論了.
11/09 23:35, 8F

11/10 00:27, , 9F
助教表示:用goto零分
11/10 00:27, 9F

11/10 00:28, , 10F
問題敘述不夠清楚,那三段程式碼都一樣
11/10 00:28, 10F

11/10 00:28, , 11F
嗎? 不然應該沒什麼能改的了...
11/10 00:28, 11F

11/10 11:37, , 12F
怎樣寫是比較好,這要看語言特質,還有你的程
11/10 11:37, 12F

11/10 11:37, , 13F
式內容. 目前這樣寫也不錯,沒有很笨.
11/10 11:37, 13F

11/11 02:42, , 14F
使用多型減少邏輯判斷, 自然可以避免
11/11 02:42, 14F

11/11 02:42, , 15F
用到 goto http://ppt.cc/Dovv
11/11 02:42, 15F
文章代碼(AID): #1Cr-5Oaq (Programming)
文章代碼(AID): #1Cr-5Oaq (Programming)