Board logo

标题: 求救:关于C语言IF的问题 [打印本页]

作者: eastson     时间: 2006-12-11 23:51    标题: 求救:关于C语言IF的问题
我要比较字符串,下面有两种写法,第一种可以break,第二种就不行。我想请教第二种为什么不行?

条件是:ct->fullname = "chdir", ct->shortname = "cd", cmd = "cd"

第一种写法(可以):
if (strcmp(ct->shortname, cmd) == 0)
break;
else if (strcmp(ct->fullname, cmd) == 0)
break;

第二种写法(不可以):
if (strcmp(ct->shortname, cmd) == 0 || strcmp(ct->fullname, cmd) == 0) break;

Last edited by eastson on 2006-12-11 at 11:07 AM ]

作者: eastson     时间: 2006-12-14 23:21
没有人知道吗?

作者: Greentea107     时间: 2006-12-17 09:03
你改成这样试试看 if ((strcmp(ct->shortname, cmd) == 0) ||( strcmp(ct->fullname, cmd) == 0)) break;

作者: lisiyuan     时间: 2006-12-19 12:09
ding ding

作者: lisiyuan     时间: 2006-12-19 12:10
ding

作者: lisiyuan     时间: 2006-12-19 12:10
顶 顶

作者: phyfer     时间: 2006-12-22 03:04    标题: 这种可取!
Originally posted by Greentea107 at 2006-12-17 09:03:
你改成这样试试看 if ((strcmp(ct->shortname, cmd) == 0) ||( strcmp(ct->fullname, cmd) == 0)) break;


支持楼上的意见!你的第二种写法是错误的,
“||” 两边的表达式应该用括号括起来