gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 07:07:13 25 4
gpt4 key购买 nike

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

我正在学习 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/

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