c++ - 使用“!”的 C++ 逻辑比较问题
问题描述
我刚刚完成了一项家庭作业,我遇到了一个“错误”(可能只是我很愚蠢);当两个堆栈都为空时,我想打破一个 while 循环。
这没有用
while(!poles[0].ISEMPTY() && !poles[1].ISEMPTY){
//iteratively solve towers of hanoi
这有效
while(poles[0].ISEMPTY()!= true && poles[1].ISEMPTY()!=true){
//iteratively solve towers of hanoi
}
我觉得我缺少一些关于逻辑运算符的基本知识......我的意思是 ISEMPTY 返回一个布尔值,如果堆栈为空,则返回 true。
解决方案
您在第二次调用ISEMPTY
:P时忘记了括号
while(!poles[0].ISEMPTY() && !poles[1].ISEMPTY()){
修复它。(您在工作示例中没有犯这个错误)。
鉴于指向函数的指针不为空,它的计算结果总是为真。
推荐阅读
- swift - 如何在 Swift 中声明关键字变量
- excel - Excel VBA 自定义标头代码适用于 32 位但不适用于 64 位
- php - PHP cURL 如何选择单选按钮值并在不单击按钮的情况下提交
- python - 如何使用按钮+文本框构建循环
- java - 如何将泛型类型转换为用户定义类型?
- google-calendar-api - 错误将重复的谷歌日历事件可见性从私人改回默认
- java - 自定义 JProgress 栏
- c# - 无法转换类型为“的对象”
键入'System.Collections.Generic.List - python-3.x - 根据字段值重现/中断行
- android - 固定间隔后在android中从后台执行REST调用