作者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