检查多个变量的相等/不相等

问题描述

比方说,我们有四个变量:int a,b,c,d;。我需要检查其中两个是否相等。

例如,1 1 9 5为真,但3 9 8 43 3 3 1为假。

当然,为此编写一个if语句会花费很多时间,不容易阅读,而且很容易出错。

写这样的陈述的最好方法是什么?

解决方法

有几种方法可以做到这一点。

一个涉及显式检查所有条件。由于您有4个变量,因此只需检查6个条件。这些很容易计算。

int n = (a == b) + (a == c) + (a == d) + (b == c) + (b == d) + (c == d);

然后检查n是否为1。这是有效的,因为布尔值将转换为int(值1为true,0为false)。

另一种可能性是将它们全部存储在容器(如矢量)中,对其进行排序,然后计算相邻相同值的数量。