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    标题: 这种可取!



  Quote:
Originally posted by Greentea107 at 2006-12-17 09:03:
你改成这样试试看 if ((strcmp(ct->shortname, cmd) == 0) ||( strcmp(ct->fullname, cmd) == 0)) break;

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