C++ 有一个if-else,有一个none-Nor语句吗?

C++ 有一个if-else,有一个none-Nor语句吗?,c++,C++,是否存在既没有a也没有B的语法?不,没有。编码“如果既没有a也没有B”: 或: 不可以。如果将与结合使用,则可以实现相同的效果(非)、&&(和)和| |(或) 最后一项与以下内容相同: if ( x != 1 && x != 2 ) { // do something } 虽然没有一个内置的语法来实现这一点,但我建议您先看一下,然后仔细研究。对这两个字段有足够的了解将允许您使用if–else if语法编写任何逻辑语句 编辑:要完全回答您的问题(尽管其他答案中已经这样做了),您可

是否存在既没有a也没有B的
语法?

不,没有。

编码“如果既没有a也没有B”:

或:


不可以。如果将
结合使用,则可以实现相同的效果(非)、
&&
(和)和
| |
(或)

最后一项与以下内容相同:

if ( x != 1 && x != 2 ) { // do something }

虽然没有一个内置的语法来实现这一点,但我建议您先看一下,然后仔细研究。对这两个字段有足够的了解将允许您使用if–else if语法编写任何逻辑语句

编辑:要完全回答您的问题(尽管其他答案中已经这样做了),您可以这样写一个非此即彼的陈述:

if (!A && !B) { DoStuff(); }
哦。。。你想要“不是”这个关键词

VB添加的不是关键字

(通讯社8-19-2004)

微软公司已经宣布了这一视觉效果 Basic会将“不是”关键字添加到 语言。据媒体报道, NET团队”用VB,我们想要 语言让你以你的思维方式工作。 广泛的可用性研究已经开始 向我们展示了 语言中没有添加任何内容。”

添加关键字将允许 例如语法

If ThisThing Ain't Nothing Then 如果这件事不算什么的话 根据消息来源,“我们只是 努力跟上时代的进步 英语,正如你所知, 变化的速度几乎和 技术本身。”VB团队 相信这一点,他们 觉得如果不包括 在这个版本中,它们可能会下降 在下一次考试之前,我们落后于英语 有机会更新VB。但是, “不是”应该等同于什么 到在它最流行的形式中 上述代码行将转换为:

If ThisThing Is Nothing Then 如果这件事不算什么的话 然而,每个人的二年级英语 老师已经说得很清楚了“不是 没有什么“真正的意思”是正确的 “某物”,因为它是双重否定。 意思是正确的等价物将 是

如果这件事不算什么的话 微软并不急于赶工 通过这项决定,国家消息来源, “看,在VB.NET Beta 1和Beta之间 2.我们不得不去,我们不想去 再经历一次。”

然而,语言纯粹主义者宣称 整个方法都被误导了, 注意“不是”是一种收缩 因为“我不是”,说“如果这件事 “我不是一无所有”只是语法不好。 他们说,更好的替代方案会 包括复活我不,比如“如果” 这件事我什么都不是。”。但即使 这可能还不够 语言学家Jacque Leblanc:“我坚持 那就是双重人格的永存 消极是造成这种情况的根本原因 问题,但到目前为止,还没有人真正 愿意讨论显而易见的问题 房间里的大象,真的吗 解决办法是允许“如果” “那么,这个项目就有意义了。”

据报道,微软公司也被解雇了 尝试“AsIf”,“也许”, 和“完全”。此外,“捕获” 可能会被替换为“Doh!”, “Finally”将替换为 “随便”

来源:

给你:

class neither_t
{
    bool lhv;
    neither_t(bool lhv): lhv(lhv) {}
public:
    bool nor(bool rhv) const
    {
        return !lhv && !rhv;
    }
    friend neither_t neither(bool lhv);
};

neither_t neither(bool lhv)
{
    return neither_t(lhv);
}

#include <cstdio>

int main()
{
    int x = 3;
    if (neither(x == 1).nor(x == 2)) {
        puts("OK");
    }
}
class既不
{
布尔低杂波;
都不是(bool-lhv):lhv(lhv){}
公众:
布尔诺尔(布尔rhv)常数
{
返回!lhv&&!rhv;
}
既不交朋友也不交朋友(bool lhv);
};
都不(bool lhv)
{
既不返回也不返回(lhv);
}
#包括
int main()
{
int x=3;
if(既不是(x==1),也不是(x==2)){
卖出(“OK”);
}
}

是。C中的&&和| |运算符执行流控制,所有表达式都是语句,因此&&和| |构成流控制语句。表达式的项一直求值,直到其值已知为止,因此&&将执行一系列真表达式,| |将执行一系列假表达式。只要| | |(OR)的参数为false(NOT),它就可以被称为非此即彼的语句

bool a = fun1(), b = fun2();
a || b || ( cerr << "neither A nor B is true" << endl );
!a && !b && ( cerr << "De Morgan says neither A nor B is true" << endl );

我希望这就是你想要的…

Ruby确实有一些这样的语法糖:

  • 除非等于if
  • 收集。空的?可以作为等价物使用!有吗

你的意思是说,除非来自perl的

$a = 12;
unless($a >= 0) {
  print "a is negative\n";
} elsif ($a == 0) {
  print "a is equal to 0\n";  
} else {
  print "a is positive\n";  
}
# it prints: a is positive

奇怪的是,除了
,没有其他的
,只有(相当于)
如果

+1对于德摩根定律,每个程序员都应该知道。确切地说,你不需要比(
&&
~
)或(
|
~
)更多的东西来表示任何逻辑联系。谢谢你——我知道这些定律,但不知道它们是以任何人的名字命名的:-)只是想补充一点,如果(!(A | | B)){DoStuff();}
,你可以将该运算符更改为
,并且它的工作原理完全相同。尽管它在英语中似乎是有意义的,但很难说清楚,因为英语是一种如此不精确的语言。你对你想要的功能有数学定义吗。如果你能用真与假来定义这个“非此即彼”和“非此即彼”,那么剩下的应该是微不足道的。直觉上,对我来说,(x){/*不发生*/}和(y){/*不发生*/}
。。。可能不是你想要的。事实上,正如Rekretivc所提到的,“非此即彼”与“非此即彼”的可比特性是“和”(或“两者都和”(如果你愿意)或“或”(“或”)所以你真的在寻找一个逻辑运算符,而不是语句关键字…另一个答案中的德摩根定律。罗夫玛,部分原因是这很可笑,部分原因是有一个小声音告诉我他们可能会这么做!“Wordup”是新的“你好世界”“.小心点,杰夫,这离好玩有点近:)VB=白话基础。=)它提醒了我一些事情:比如在“VBA不是一种真正的编程语言”xDsource:我很高兴你没有把它命名错误。这是美式英语中的一个误用,让我感到厌烦。我真的很怀念除非关键字,很惊讶python没有它,就像BDFL避开三元组一样。 If ThisThing IsNot Nothing Then
class neither_t
{
    bool lhv;
    neither_t(bool lhv): lhv(lhv) {}
public:
    bool nor(bool rhv) const
    {
        return !lhv && !rhv;
    }
    friend neither_t neither(bool lhv);
};

neither_t neither(bool lhv)
{
    return neither_t(lhv);
}

#include <cstdio>

int main()
{
    int x = 3;
    if (neither(x == 1).nor(x == 2)) {
        puts("OK");
    }
}
bool a = fun1(), b = fun2();
a || b || ( cerr << "neither A nor B is true" << endl );
!a && !b && ( cerr << "De Morgan says neither A nor B is true" << endl );
try {
    a || b || ( throw logic_error( "neither a nor b is true" ), false );
} catch( logic_error &exc ) {
    cerr << exc.what() << endl;
    cerr << "now with added madness!" << endl;
}
$a = 12;
unless($a >= 0) {
  print "a is negative\n";
} elsif ($a == 0) {
  print "a is equal to 0\n";  
} else {
  print "a is positive\n";  
}
# it prints: a is positive