java - 无法访问的代码 - 在 switch 语句中返回后放置一个中断

标签 java netbeans methods

我试过查找这个,虽然其他人也问过这个问题,但他们的情况适用于不同的事情(据我所知)。

我正在学习 Java,我正在创建一个程序来与用户“交谈”,提出问题和其他内容。作为实际学习面向对象编程概念的一个步骤,我创建了一个类来帮助我的主要项目不处理问题,而是将大多数问题的处理和返回放在一个名为 ConversationHelper 的类中。

我在我的 ConversationHelper 中创建了一个方法来询问是/否问题。这是它的代码:

public boolean askYNQuestion(String question) {
    Scanner input = new Scanner(System.in);

    boolean isInputCorrect = false;

    while(isInputCorrect == false) {
    displayQuestion(question + " (Y or N)");
    String readin = input.nextLine();

    switch (readin.toLowerCase()) {
        case "n":
            return false;
            break;
        case "y":
            return true;
            break;
        case "yes":
            return true;
            break;
        case "no":
            return false;
            break;
        case "false":
            return false;
            break;
        case "true":
            return true;
            break;
        default:
            break;
    }
}
    System.out.println("THIS IS NOT SUPPOSED TO HAPPEN! FALSE DEFAULT!");
    return false;
}

这个问题比其他任何事情都更令人烦恼。 switch 语句中的每个 break 都会出现“无法访问的代码”,因为它之前有一个 return 语句。然而,这是注定要发生的。

Netbeans 现在在构建时告诉我“编译器运行时出错”。这不仅很烦人,而且很难判断这个错误是这个已知错误,还是另一个需要我注意的错误,在我尝试让我的程序运行时浪费时间。

我正在寻找一种不会产生错误的更好方法,或者一种强制禁止此错误出现的方法。我正在使用 Java 8 运行 Netbeans。非常感谢任何帮助。

谢谢!

最佳答案

return 将充当break。没有必要同时使用两者。如果您收到消息说您有无法访问的代码,那么它在那里没有任何意义,或者您之前所做的某些事情在逻辑上是错误的。

作为第二点,只是为了改进您的代码,您可以在 switch 语句中组合条件。如果您有多个将退回相同元素的商品,您可以一个接一个地列出它们,并为它们全部返回。

 switch (readin.toLowerCase()) {
    case "n":
    case "no":
    case "false":
        return false;
    case "y":
    case "yes":
    case "true":
        return true;
    default:
        break;
}

关于java - 无法访问的代码 - 在 switch 语句中返回后放置一个中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25048769/

相关文章:

java - 1-10 之间的正整数的阶乘。问题: Works only if valid input is greater than previous input

java - 在 Canvas 上画一个正方形

java - 如何使用 StaX 获取特定 XML 标记的值

java - 如何从源文件夹中以 FileInputStream 形式读取图像?

java - 使用 if 语句创建一个 for 循环方法返回正确的 "return"没有数组?

java - 在 .before() 中传递 int 以计算它是否早于 x 天

java - Netbeans MySQL 连接 - 与 jdbc 无关

java - java中的hotmail登录错误(IDE : Netbeans)

java - java中数组,检查最小、最大和平均值

c# - 使用方法对数组的值求和