当前位置: 首页 > 面试题库 >

是否有干净的语法检查多个变量是否都具有相同的值?

马淇
2023-03-14
问题内容

我们有n个变量,X = {x1,x2,...xn}它们没有任何结构。

例如在python中,我可以这样做: if (x1 == x2 == x3 == xn):

在Java中,我必须这样做: if((x1 == x2) && (x2 == x3) && (x3 == xn)):

您知道一种改进此语法的简单方法吗?(想象一下很长的变量名以及很多)

谢谢。


问题答案:

如果您有很多这样的变量,是否考虑过将它们放在集合中,而不是将它们作为单独的变量?此时有多种选择。

如果发现自己经常这样做,则可能要编写辅助方法,可能使用varargs语法。例如:

public static boolean areAllEqual(int... values)
{
    if (values.length == 0)
    {
        return true; // Alternative below
    }
    int checkValue = values[0];
    for (int i = 1; i < values.length; i++)
    {
        if (values[i] != checkValue)
        {
            return false;
        }
    }
    return true;
}

glowcoder提出的一种替代方法是强制存在至少一个值:

public static boolean areAllEqual(int checkValue, int... otherValues)
{
    for (int value : otherValues)
    {
        if (value != checkValue)
        {
            return false;
        }
    }
    return true;
}

在这两种情况下,都可以使用:

if (HelperClass.areAllEqual(x1, x2, x3, x4, x5))
{
    ...
}


 类似资料:
  • 我想比较两个数组,看看它们是否有相同的值。 如果我有一个数组,名为 以及如何将坐标放入“coords”变量(哦,等等,它被称为“ship”,而不是coords。我忘了): //arr.add(new javax.vecmath.vector3f(float.parsefloat(x),float.parsefloat(y),float.parsefloat(z));}谢谢!

  • 如何检查两个数组(循环)是否具有相同顺序的相同元素。例如,让我们以数组[1,2,3,4]为例。 对于[2,3,4,1]、[3,4,1,2]、[4,1,2,3],测试应返回true,但对于[1,3,2,4]、[1,4,2,3]或[1,2,3,5]则不返回true。 我最初的方法是找到第一个匹配项——每个数组中一个相等的元素——并将这两个元素视为各自数组的初始元素,我逐个比较了数组的其余元素。 有没有

  • 问题内容: 明智与否?编译器会始终优化if语句吗?是否有任何可从if语句中受益的用例? 如果是可变变量怎么办? 我对C ++和Java答案都感兴趣,因为volatile变量在两种语言中都有不同的语义。Java的JIT编译也可以有所作为。 如果我们总是用X覆盖var,则if语句会引入分支和附加读取,这是不可能的,所以这很不好。另一方面,如果随后使用此优化,则仅执行读取操作,而不执行写入操作,这可能会

  • 我想写一个方法来确定一棵树是否至少有一对相同的子树,这些子树的值和结构都必须相同。 假设给你一棵树,如下所示: 这将返回,因为我们有一对根为的相同树。 我的想法是遍历每个节点,构建一个映射到

  • 问题内容: 假设我有一个类A,而B,C,D是从A派生的。 如果我想知道所引用的对象的类型是什么,可以声明: 这是因为我确定从A派生的类只有B,C和D。 但是,如果我只想检查两个引用是否指向同一种对象,该怎么办? 所以像这样: 但是当然语法是错误的,如何在没有1000 if-else的情况下进行检查? 问题答案: 你的意思是 即使和属于相同的特定类,也应返回true 。 但是,如果与进行比较,则此方

  • 问题内容: Swift中是否有一个函数可以检查数组的所有元素是否具有相同的值?就我而言,它是一个type数组。我知道我可以使用一个简单的for循环对其进行迭代,我只是想知道是否内置了某些东西并且速度更快。 问题答案: 任何方法都必须遍历所有元素,直到找到另一个元素: 可以使用以下函数来代替显式循环: 如果数组元素是(例如),则可以从数组元素创建一个(从Swift 1.2开始可用),并检查它是否恰好