gpt4 book ai didi

C++:for 循环中的多个退出条件(多个变量):AND -ed 还是 OR -ed?

转载 作者:可可西里 更新时间:2023-11-01 15:40:10 26 4
gpt4 key购买 nike

For 循环和多个变量和条件。

我正在使用 for 循环来设置源索引和目标索引以复制数组中的项目。

for(int src = 0, dst = 8;
src < 8, dst >= 0;
src ++, dst --)
{
arr2[dst] = arr1[src];
}

反正就是这样。

(与)|| (||)

我的问题是关于退出条件。这里有两个。 src < 8dst >= 0 .这些条件是 AND 运算 ( && ) 还是 OR 运算 ( || )。

进一步解释一下,条件是这样计算的:

(src < 8) && (dst >= 0)

或者他们是这样评价的?

(src < 8) || (dst >= 0)

还是完全不同的东西?我想合乎逻辑的做法是评估我上面指定的两种方式之一,而不是其他方式。

最佳答案

逗号运算符将返回正确表达式的值,所以这样写:

 src < 8, dst >= 0;

作为条件将与只写 dst >= 0 相同. src < 8在这种情况下将被完全忽略,因为它与第二个条件分开评估,然后返回第二个条件。这不会评估为 AND 或 OR,但实际上只是具有完全“丢弃”第一次检查的效果。

如果你想正确地评估它,你应该使用你的两个选项之一(通过 ||&& 明确指定行为)。

有关详细信息,请参阅 Comma Operator :

When the set of expressions has to be evaluated for a value, only the rightmost expression is considered.

关于C++:for 循环中的多个退出条件(多个变量):AND -ed 还是 OR -ed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18063552/

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