【发布时间】:2012-04-29 17:35:47
【问题描述】:
我的程序的一部分(如果需要,我可以添加更多细节)包含这一行:
if((e->start->explored = false) || (e->end->explored = false)){
//do action...
}
这是图算法的一部分,其中 e 是具有事件顶点“开始”和“结束”的有向边。如果 e 的至少一个事件顶点未被探索,我希望“行动”发生,但这种逻辑似乎是错误的。虽然我使用了一个小例子并验证了我的边的开始和结束顶点确实是未经探索的,但我的整个函数正在进入一个无限循环。
然后我这样测试它:
if((e->start->explored = false) || (e->end->explored = false)){
//do action...
}
else cout << "FAIL";
...当然,它打印了一个“失败”的屏幕。我的逻辑错误是什么?
【问题讨论】:
标签: c++ logical-operators