如何使用布尔值(C++)退出while循环

How to exit a while loop with a boolean (C++)

本文关键字:退出 while 循环 C++ 何使用 布尔值      更新时间:2023-10-16

代码:

while (CheckPalindrome == false)
{
cout << "hi";
i = number;
r = RevNum(i);
adds++;
CheckPalindrome(i);
}
bool CheckPalindrome(int i)
{
bool Check = false;
if (i == rev)
{
Check = true;
}
return Check;
}

出于某种原因,它只是跳过while循环。我不确定这是布尔值的问题还是while循环中的语法问题。

CheckPalindrome是一个函数。函数的名称本身计算为该函数的地址。由于这是一个指针类型,将其作为if/while的条件进行评估相当于将其与空指针进行比较,因此while循环本质上与相同

while (checkPalindrome == nullptr)

当循环执行时,checkPalindrome的地址不会改变,所以这只能做两件可能的事情之一:要么checkPalindrome的地址与空指针1相当,循环根本不会执行,要么它与空指针不相等,你会得到一个无限循环。


1.可能有争论的余地,认为这种情况永远不应该发生/实际上是不允许的,但即使发生了,也无济于事

为了测试Check Palindome函数的布尔响应,您必须实际调用该函数。

而不是

while(CheckPalindrome == false)

将其更改为

while(CheckPalindrome(someVariable) == false)

然后您可以在函数中修改CCD_ 7。

当然,由于函数返回布尔值,因此正确的语法是:

while ( !CheckPalindrome(someVariable) )

如果没有领先的!,那就是while (true)!使之成为事实,而不是真的,也就是while (false)