创建一种基于用户字符串输入的整数返回的方法



我在Java上不太好,但是我正在尝试创建一种从用户输入并返回值的方法。但是困难总是返回0?

chosendifficulty = username.next().touppercase();

 public int getDifficulty() {
    int difficulty = 0;
    if (chosenDifficulty == "HUMAN") {
            difficulty = 1;
        if (chosenDifficulty == "RANDOM") {
            difficulty = 2;
        }else{
            difficulty = 3;
        }
    }
     return difficulty;
}

感谢您的任何帮助,这可能只是因为晚了,但我真的无法弄清楚。...或者也许是不可能这样做的。...预先感谢您的任何帮助。

凯文的答案很好(对:有一个缺少的近齿,String等于.equals(),而不是==)。

,但作为另一个选择:这种比较是switch语句的好地方,而不是链式if。假设您至少在Java 7中运行,这添加了字符串的开关语句。品味问题。switch()据说更有效,但我认为在大多数情况下的决定性因素应该是您发现更可读的。

public int getDifficulty() {
    int difficulty;
    switch (chosenDifficulty) {
        case "HUMAN":
            difficulty = 1;
            break;
        case "RANDOM":
            difficulty = 2;
            break;
        default:
            difficulty = 3;
    }
    return difficulty;
}

它可能始终返回0,原因有两个。

首先,您无法使用==在Java中执行字符串相等检查,并期望一致的结果。您几乎总是想使用" .equals()"方法来检查对象之间的平等。确切的原因在这里很好地解释了:

http://www.programmerinternview.com/index.php/java-questions/java-whats-whats-the-difference-between-equals-and/equals-and/

第二,您缺少末端手柄。

下面应该有效:

public int getDifficulty() {
    int difficulty = 0;
    if (chosenDifficulty.equals("HUMAN")) {
        difficulty = 1;
    } else if (chosenDifficulty.equals("RANDOM")) {
        difficulty = 2;
    }else {
        difficulty = 3;
    }
    return difficulty;
}

首先,您应该在比较字符串时使用.equals()方法而不是==

if (chosenDifficulty.equals("HUMAN")) {

与"随机"相比,第二个if语句在第一个。这意味着仅当Chosendifficulty等于"人类"时才使用。由于说明有其他条件困难的第二个,如果达到if语句,将始终设置为3,则没有将难度设置为2的场景。然后将难度设置为1。然后将其设置为3,因为它不等于"随机"。或者,如果不满足第一个标准,则相当于"人类",难度将保持为0。

我已经在我想想要的东西下发布了。如果Chosendifficulty是"人",则难度为1。如果是"随机",难度为2。如果是其他任何东西,它将返回3。

 public int getDifficulty() {
       int difficulty = 3;
    if (chosenDifficulty.equals("HUMAN")) {
            difficulty = 1;
          }
        if (chosenDifficulty.equals("RANDOM")) {
            difficulty = 2;
        }   
     return difficulty;
  }

,而不是铸造大写和检查内容。在这里,目标是检查内容,无论案例如何,请删除

      chosenDifficulty = userName.next().toUpperCase();

然后使用equalsignorecase

      chosenDifficulty.equalIgnoreCase("HUMAN")

,忽略案例的内容将匹配。

相关内容

  • 没有找到相关文章