使用“!”的 C++ 逻辑比较问题
C++ logical comparison issue using "!"
我刚刚完成了家庭作业,我 运行 变成了 "bug"(可能只是我太笨了);当两个堆栈都为空时,我想打破一个 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 returns 布尔值,如果堆栈为空则为真。
你忘记了 ISEMPTY
第二次调用时的括号 :P
while(!poles[0].ISEMPTY() && !poles[1].ISEMPTY()){
修复它。
(您在工作示例中没有犯那个错误)。
鉴于指向函数的指针是非空的,它将始终计算为真。
我刚刚完成了家庭作业,我 运行 变成了 "bug"(可能只是我太笨了);当两个堆栈都为空时,我想打破一个 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 returns 布尔值,如果堆栈为空则为真。
你忘记了 ISEMPTY
第二次调用时的括号 :P
while(!poles[0].ISEMPTY() && !poles[1].ISEMPTY()){
修复它。 (您在工作示例中没有犯那个错误)。
鉴于指向函数的指针是非空的,它将始终计算为真。