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

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

须景胜
2023-03-14
问题内容

我尝试过查找,尽管其他人也提出了此要求,但他们的情况适用于不同的事物(据我所知)。

我正在学习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语句中的每个中断都带有“无法访问的代码”,因为它前面有一个return语句。但是,这注定要发生。

Netbeans现在在构建时告诉我,“编译器运行时出错”。这不仅烦人,而且很难分辨出该错误是这个已知错误,还是另一个需要我注意的错误,这在我使程序工作时浪费了时间。

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

谢谢!


问题答案:

A
return将充当break。无需同时使用两者。如果收到消息,指出您的代码无法访问,则说明那里没有任何意义,或者您先前所做的操作在逻辑上是混乱的。

第二点,只是为了改善代码,您可以在switch语句中组合条件。如果您有多个将返回同一项目的项目,则可以一个接一个地列出它们,然后全部归还一次。

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


 类似资料:
  • 问题内容: 切换语句修复: switch语句仅返回最后一种情况,即情况4,“#0R0dfdf0FF”。我该如何解决这个问题,以使文本视图显示对话框中单击的那个?我是一个新手,所以真的很感谢您的帮助。 } 问题答案: 交换机分支的末尾缺少您。

  • 我是一名初级开发人员,希望更好地组织我的代码。 现在,我正在处理表单编号。我检索表单编号的哈希图,根据表单编号,我需要调用不同的方法。每个方法都接受相同的参数,但做的事情不同。 例如: 几点注意事项 -方法是由另一个开发人员构建的。他辞职了,所以我承担了他的工作,并希望重构以使其变得更好。 -起点是表单编号的哈希映射。我生成HashMap,然后循环遍历它,根据HashMap中的每个表单编号收集详细

  • 问题内容: 我不明白“无法​​访问的代码”是什么意思? 在我的代码的最后一行中,它表示无法访问的代码。 } 问题答案: 这里的循环: 解析为,因为从未修改过的值。因此,(在您的情况下)之后出现的任何代码均被视为 无法访问 。

  • 本文向大家介绍Java中无法访问的语句错误,包括了Java中无法访问的语句错误的使用技巧和注意事项,需要的朋友参考一下 由于多种原因导致无法编译代码时,发生无法访问的代码错误,其中包括:无限循环,无法访问的代码行之前的return语句。 让我们看一个例子- 示例 输出结果 名为Demo的类包含主函数,并定义了一个值,并检查该值并运行空的“ for”循环。如果找到该值,则控件会跳出循环,否则将显示一

  • 问题内容: 我刚刚学习(正在学习)函数参数在Python中的工作方式,并且在没有明显原因的情况下开始进行实验: 给出了输出: 哪里来的?还有,这是什么? 问题答案: 它是函数的返回值,您可以将其打印出来。如果没有语句(或者只是没有参数的),则将隐式添加到函数的末尾。 您可能想返回函数中的值,而不是打印它们:

  • 问题内容: 您好,我是python的新手,想知道您是否可以帮我一些忙。我一直在玩这段代码,似乎无法使其正常工作。 现在,isPrime方法的输出如下: 我确定该函数应返回true,然后应打印“是”。我想念什么吗? 问题答案: 您将放弃递归调用的返回值: 您也想传播递归调用的值,包括一条语句: 现在,您的代码将输出: