gpt4 book ai didi

c - for 循环 C 中的 OR 运算符

转载 作者:行者123 更新时间:2023-11-30 20:31:58 26 4
gpt4 key购买 nike

我不知道下面的代码如何返回 10。我预计 x>2||(y%2) 部分意味着 x 应该大于 2 或大于 y%2。

int x, y = 1;
for (x = 10; x > 2 || (y % 2); x--) {
y = y + 1;
}
printf ("%d\n", y);

当我将其更改为以下内容时,我得到了预期的输出(11):

int x, y = 1;
for (x = 10; x > 2 || x > (y % 2); x--) {
y = y + 1;
}
printf ("%d\n", y);

第二个代码与第一个代码有何不同?

最佳答案

x > 2 || (y % 2)

首先测试x > 2,如果为假,则测试(y % 2)(y为奇数)。

|| 运算符不适用于也不能应用于 > 运算符,|| 操作只执行一次,而不是两次。这是此处展示的经典 Python 错误的 C 变体:How do I test multiple variables against a value? ,尝试在计算机语言中使用自然语言失败。

(顺便说一句,它不是运算符优先级,运算符优先级将介于该表达式和x > (2 || (y % 2))之间,但仍然不是您想要的正在寻找)

还相关:C++ Most efficient way to compare a variable to multiple values?

关于c - for 循环 C 中的 OR 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49214641/

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