Isa*_*son 2 java methods netbeans
我试过查这个,虽然其他人问过这个,但他们的情况适用于不同的事情(据我所知)。
我正在学习 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;
}
Run Code Online (Sandbox Code Playgroud)
这个问题比其他任何事情都更令人烦恼。switch 语句中的每个中断都会产生“无法访问的代码”,因为在它之前有一个 return 语句。然而,这是注定要发生的。
Netbeans 现在在构建时告诉我“编译器运行时出错”。这不仅很烦人,而且很难判断错误是这个已知错误,还是另一个需要我注意的错误,在我试图让我的程序工作时浪费时间。
我正在寻找一种不会产生错误的更好的方法来执行此操作,或者一种强制禁用此错误的方法。我正在使用 Java 8 运行 Netbeans。任何帮助将不胜感激。
谢谢!
Areturn将充当break. 没有必要同时使用两者。如果您收到消息说您有无法访问的代码,那么它在那里没有任何意义,或者您之前所做的事情在逻辑上是无序的。
第二点,为了改进您的代码,您可以在 switch 语句中组合条件。如果您有多个返回相同内容的项目,您可以将它们一个接一个地列出,并为它们全部设置一个返回值。
switch (readin.toLowerCase()) {
case "n":
case "no":
case "false":
return false;
case "y":
case "yes":
case "true":
return true;
default:
break;
}
Run Code Online (Sandbox Code Playgroud)