如何使用布尔值(C++)退出while循环
How to exit a while loop with a boolean (C++)
代码:
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)
。
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 退出简单while循环时出现问题
- 使用 while 或 do while 退出循环
- 如何使用布尔值(C++)退出while循环
- 如何修复不会在退出选择时终止的 do-while 循环
- 代码不会退出 while 循环
- 为什么当我进入退出条件时,程序会打印两倍的默认条件而不是退出 while 循环?
- 退出选项和 while 循环C++
- while( scanf( "%d" , &n) ) { ... } 在 Linux 上按 Ctrl+D 时不退出
- 试图调节我的 do-while 以停止在终端中退出程序.菜单不会根据需要循环使用当前语句
- C++ while 循环在满足条件后不会退出
- 使用输入重载时,是否可以像这样退出 while 循环
- 如何在条件表达式中使用 'cin' 正确退出 while 循环?(C++,CLion)
- 退出while循环,cin.使用ctrl-Z/ctrl-D无法使用c++
- C++如何退出while循环recvfrom()
- c++ OpenMP在并行for中退出while循环
- 在一行最后一个单词之后立即退出While循环
- 在x次循环后退出while循环
- 如何提前退出while循环
- c++程序不会退出while循环