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

是否有一种比较简单的方法来针对if语句中的一个值检查多个值?

裴凯定
2023-03-14
问题内容

基本上,我想对给定的值检查两个整数,因此,按照惯例,您将要执行以下操作:

//just to get some values to check
int a, b;
a = (int)(Math.random()*5);
b = (int)(Math.random()*5);

//the actual thing in question
if(a == 0 || b == 0)
{
//Then do something
}

但是,有没有更简洁的格式可以执行此操作?可能与此类似(返回错误的操作数类型):

//just to get some values to check
int a, b;
a = (int)(Math.random()*5);
b = (int)(Math.random()*5);

//the actual thing in question
if((a||b) == 0)
{
//Then do something
}

问题答案:

不幸的是,Java中没有这样的构造。

如果这种比较在您的代码中很常见,则可以实现一个小的函数来为您执行检查:

public boolean oneOfEquals(int a, int b, int expected) {
    return (a == expected) || (b == expected);
}

然后,您可以像这样使用它:

if(oneOfEquals(a, b, 0)) {
    // ...
}

如果您不想将自己限制为整数,可以使上述函数通用:

public <T> boolean oneOfEquals(T a, T b, T expected) {
    return a.equals(expected) || b.equals(expected);
}

请注意,在这种情况下,Java运行时将对原始类型(如)执行 自动装箱和拆箱int,这会降低性能。



 类似资料:
  • 我试着比较两个值 我得到一个错误

  • 有可能做如下事情吗: 或者: 我知道用很多if-else语句也可以实现同样的目标,但如果它像上面那样工作,看起来会更干净。

  • 问题内容: 对于我的工作,我必须开发一个小型Java应用程序,该应用程序可以解析非常大的XML文件(约30万行)以选择非常具体的数据(使用),因此我试图对其进行一些优化。我想知道这两个摘要之间哪个更好: 要么 其他详情: 这些if语句在循环内的每次迭代中执行(约20k次迭代) 的是一种在利用外部函数每次迭代计算 如果将设置为,则无需测试正则表达式是否匹配 谢谢你的帮助。 问题答案: 我遵循的一条黄

  • 我想知道如何创建一个if语句,如果提供的int与输入的任何顺序匹配,该语句将为真。例如,如果int为745,则使754、547或457返回true。我想把它变成一个字符串,然后提取每个字符值,并将字符值相加,使其成为比较值。这行吗?对不起,如果这个问题是愚蠢的,我是java新手。提前谢谢 更新 我开发了一个有效的代码,除了在输入时有效,例如647,我将其与638进行比较,因为它们都具有相等的字符值

  • 问题内容: 考虑以下: 有什么办法可以缩短时间? Javascript中有什么类似的东西吗? 另外,jQuery可以在这里提供帮助吗? 问题答案: 使用正则表达式: 或相反: [更新]更短;-)

  • 问题内容: 当您使用很多术语时,以下语句看起来非常混乱: 有没有一种更干净的方式来执行相同的操作,我希望我的代码尽可能可读。 注意:x,y和z只是任何长度的任何字符串的占位符。如果条件中的每个条件进行或运算,则此处可能有20个长度可变的字符串术语 问题答案: Set stuff = new HashSet (); stuff.add(“x”); stuff.add(“y”); stuff.add(