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

带有多个比较的更干净的if语句

马弘益
2023-03-14
问题内容

当您使用很多术语时,以下语句看起来非常混乱:

if(a.equals("x") || a.equals("y") || a.equals("z") || Any number of terms...... )
    //Do something

有没有一种更干净的方式来执行相同的操作,我希望我的代码尽可能可读。

注意:x,y和z只是任何长度的任何字符串的占位符。如果条件中的每个条件进行或运算,则此处可能有20个长度可变的字符串术语


问题答案:

Set stuff = new HashSet ();
stuff.add(“x”);
stuff.add(“y”);
stuff.add(“z”);
if(stuff.contains(a)) {
//stuff
}


如果这是一个紧密循环,则可以使用静态Set。

static Set<String> stuff;
static {
    stuff = new HashSet<String>();
    stuff.add("x");
    stuff.add("y");
    stuff.add("z");
}

//Somewhere else in the cosmos

if(stuff.contains(a)) {
    //stuff
}

而且,如果您要特别确定不看时没有任何修改。

Set<String> test = Collections.unmodifiableSet(new HashSet<String>() {
        {
            add("x");
            add("y");
            add("z");
        }
    });

如果您只是想为一些硬编码条件提供一些逻辑,那么使用switch或if语句与换行符解决方案可能会更好。但是,如果您有很多条件,则最好将配置与逻辑分开。



 类似资料:
  • 问题内容: 我的代码在这里检测the 是否等于某种MIME类型,如果是,它将进行一定的转换 我缩短了代码,因为它包含许多其他if语句,哪种设计模式适合于删除许多if and else or else if语句? 问题答案: 你可以有一个接口。然后,你可以为每个Mimetype创建一个类,如下所示: 每个转换器都需要一个这样的类。然后,你可以像这样设置地图: 然后,你的convertToMp3方法将

  • 我试过这种格式 但这似乎不起作用。

  • 我试着比较两个值 我得到一个错误

  • 我能够从赫尔辛基MOOC课程中弄清楚这个项目,但我认为有一种更干净、更容易阅读的方式来写它。目标是打印出:

  • 问题内容: 我试图获得一个if语句从多个条件中触发,而不用不同的触发器多次重写该语句。例如: 您如何将这些内容浓缩成一个陈述? 我试过使用“或”,并且无论输入是否符合任何条件,它都会导致任何raw_input触发语句。 问题答案: 你想做的是 如果您有很多可能性,请选择另一个选项: 由于您使用的是2.7,因此您也可以这样编写(在2.7或3+版本中有效,但在2.6或以下版本中无效): 这使元素成为您

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