gpt4 book ai didi

c++ - 使用 "or"而不是 || 的名称是什么在 C++ 中?

转载 作者:太空狗 更新时间:2023-10-29 23:37:11 26 4
gpt4 key购买 nike

今天我遇到了一行有趣的代码。我不知道使用“或”这个词是合法的。我以为只有||。这叫什么,我在哪里可以阅读更多相关信息?谢谢

if (V_discount == "y" or "Y" or "Yes" or "yes")
{
cout << "Your discount is: ";
}

编辑:事实证明 if 语句并没有做太多事情。我放了一个 cout<<"hi";在括号中,无论 V_discount 中包含什么,它都会执行。

我认为它被称为某种东西,因为 netbeans 以蓝色突出显示“或”。

第二次编辑:

v == "y" || "Y" 

不一样

v == "y" || v == "Y"

只有后者“按预期”运行。 “As intended”正在检查 v 是字符串“y”还是 v 是字符串“Y”。

最佳答案

它被称为“替代标记”,记录在当前 ISO C++ 标准的第 2.6 节 [lex.digraph] 和 1998 ISO C++ 标准的第 2.5 节中。 (这是定义“二合字母”的同一部分,例如 <% 表示 {%: 表示 #。)

但是您显示的代码使用不正确。

首先,如果xint ,那么你可能想要这个:

if (x == 10 or x == 20 or x == 30)

而不是这个:

if (x == 10 or 20 or 30)

后者实际上是合法的,但它的含义却截然不同。

比较字符串是否相等并不简单。如果V_discountchar*char[] , 然后比较 V_discount == "yes"比较指针值,而不是字符串的内容,它们肯定会比较不相等。如果V_discountstd::string ,那么我认为它会起作用——但你仍然必须将它与每个文字单独进行比较。否则,正如 Tony Delroy 的回答所说,它编译但做了一些完全意想不到的事情,涉及到 bool 的隐式转换。 .

关于c++ - 使用 "or"而不是 || 的名称是什么在 C++ 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9270719/

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