gpt4 book ai didi

java - 使用大量 || 编写 if 语句的更好方法

转载 作者:行者123 更新时间:2023-11-29 09:39:07 24 4
gpt4 key购买 nike

我想知道是否有更优雅的方式来编写带有大量 || 的 if 语句在 java 。我为字母表赋予了不同的值:

A,O,I,B,T,S,M,N -> 1 
C,D,F,G -> 5
W,Y,Z,H,Q -> 10

所以,我想检查一个给定的字母,如果与第二组中的一个字母相等,例如得到 5。现在我正在这样检查:

String value;
if (getLetter().equals("Α")|| getLetter().equals("O") ||
getLetter().equals("I") || getLetter().equals("B") ||
getLetter().equals("T") || getLetter().equals("S") ||
getLetter().equals("N") || getLetter().equals("N"))
value = "1";

有更好的方法吗?

最佳答案

三个选项:

  • 假设您使用的是 Java 7 或 8,请使用 switch 语句:

    switch (getLetter()) {
    case "A":
    case "O":
    case "I":
    case "B":
    ...
    value = "1";
    ...
    }
  • 使用三个 Set<String>对象

  • (最佳,IMO)使用 Map<String, String>

最后一个选项是这样的:

// You'd presumably initialize this in one place...
Map<String, String> map = new HashMap();
map.put("A", "1");
map.put("O", "1");
map.put("I", "1");
...
map.put("C", "5");
map.put("D", "5");
...

String value = map.get(getLetter());

关于java - 使用大量 || 编写 if 语句的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30122629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com