作者AROOBA (腦內補完達人)
看板Programming
標題[請益] 有沒有更好的撰寫方法
時間Mon Nov 8 19:39:01 2010
問題:
有三項獨立的檢查,但是要先開啟該項檢查才會進入
只要其中一項檢查錯誤程式就結束
我自己的寫法
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
1F:→ andrew43:可以用 if... else... 會更好些. 122.117.35.207 11/08 20:53
2F:→ andrew43:能用 switch 也會好一些. 122.117.35.207 11/08 20:54
3F:→ andrew43:你每個check都用二個if, 是真的浪費了. 122.117.35.207 11/08 20:54
因為有可能執行兩個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)
4F:推 tomap41017:包成class並且存進去container?140.112.244.171 11/08 21:24
5F:推 hirabbitt:為什麼可能執行兩個check(ex:A & C)220.136.176.217 11/09 07:23
6F:→ hirabbitt:這代表b錯誤 不是應該程式結束嗎?220.136.176.217 11/09 07:23
7F:→ hirabbitt:喔我看錯了XD220.136.176.217 11/09 07:23
8F:→ andrew43:一次要檢查2個以上的check就另當別論了.140.128.117.116 11/09 23:35
9F:→ abccbaandy:助教表示:用goto零分 219.71.37.89 11/10 00:27
10F:→ abccbaandy:問題敘述不夠清楚,那三段程式碼都一樣 219.71.37.89 11/10 00:28
11F:→ abccbaandy:嗎? 不然應該沒什麼能改的了... 219.71.37.89 11/10 00:28
12F:推 yauhh:怎樣寫是比較好,這要看語言特質,還有你的程 211.21.94.199 11/10 11:37
13F:→ yauhh:式內容. 目前這樣寫也不錯,沒有很笨. 211.21.94.199 11/10 11:37
14F:推 loveme00835:使用多型減少邏輯判斷, 自然可以避免140.121.197.115 11/11 02:42