gpt4 book ai didi

c++ - bool递归函数中的真/假优先级

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:07:36 25 4
gpt4 key购买 nike

我已经阅读了一些以前的帖子,并且学到了一些东西,但我想验证一些循环是如何工作的。在阅读中,我是否理解“真”比“假”具有更高的优先级?例如:

/.../
return (true || false);

将返回“true”(无论顺序如何)?

如果我有一个 boolean 递归函数调用自身的 3 个变体...我只需要一个版本返回 true 整个函数返回 true,对吗?下面的函数创建它的堆栈框架,然后返回调用创建 3 个以上的堆栈框架并运行调用,然后如果一个返回 true 整个函数返回 true,因为 true 优先于 false ...这个假设是否正确?

即:

/* This function is taking a given weight and seeing if it can be offset by available 
* weights. Depending on what weights are available, the weights can be directly opposed
* to "weight" (opposite side of scale) or added to... The recursive calls will either all
* return false, all return true, or a variation thereof. All that I can is that if one
* branch returns true, the overall function returns true...
*/

bool CanMeasure(int weight, std::vector<int> &availableWeights, int index = 0)
{
/.../
// the below can return all true, all false, or some variation thereof...
return (CanMeasure(weight + availableWeights[index], availableWeights, index + 1) ||
CanMeasure(weight - availableWeights[index], availableWeights, index + 1) ||
CanMeasure(weight, availableWeights, index + 1));
}

谢谢大家!

最佳答案

truefalse 是值,而不是运算符 - 因此它们没有优先级。

但是,如果结果已知,&&|| 运算符会缩短求值;因此,如果左侧表达式产生 true 并且您应用 ||,则右侧表达式将不会被计算;这同样适用于 false&&

关于c++ - bool递归函数中的真/假优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9157013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com