Java错误缺少返回语句

好吧,我正在尝试编写此代码,但我不断收到这个愚蠢的错误。 我不知道我做错了什么,所以也许你们中的一位专家可以帮助我。

import java.util.*; public class School { Random randQuest = new Random(); int userAnswer; public void createQuestion() { int range = 10; // range of numbers in question int num1 = randQuest.nextInt( range ); int num2 = randQuest.nextInt( range ); userAnswer = num1 * num2; System.out.printf( "How much is %d times %d?\n", num1, num2 ); } // prompt comment public String promComm( boolean answer ) { if ( answer ) { switch ( randQuest.nextInt( 1 ) ) { case 0: return( "Very Good!" ); } switch ( randQuest.nextInt( 1 ) ) { case 0: return( "No. Please try again." ); } } } 

}

在方法promComm如果answerfalse该方法不返回任何值。 如果randQuest.nextInt(1) != 0.

应该是这样的:

 public String promComm( boolean answer ){ if (answer){ switch (randQuest.nextInt(1)){ case 0: return("Very Good!"); } switch (randQuest.nextInt(1) ){ case 0: return( "No. Please try again." ); } return "Some value"; }else return "Some value"; } 

promComm方法返回String,但如果切换值不为0,那么你的函数将不返回任何内容 – 没有默认的return语句。

你的方法promComm应该在每种情况下返回一个String,而不是它。 修复它以添加默认返回语句的最简单方法。

 public String promComm( boolean answer ){ if ( answer ){ //... } return "default value when answer is false."; } 

在if-else语句之后返回一个String结果

 public String promComm( boolean answer ){ if(answer){ ... }else{ ... } return ""; //empty string <-- you are missing a default return statement } 

试着写这个

  public String promComm( boolean answer ) { if ( answer ) { switch ( randQuest.nextInt( 1 ) ) { case 0: return( "Very Good!" ); } switch ( randQuest.nextInt( 1 ) ) { case 0: return( "No. Please try again." ); } } return ""; } 

当方法具有返回类型时,其所有代码流都必须返回一个值。 在你的代码中,如果答案是假的,promComm()不会遇到if块而且永远不会返回值!

除了不建议在方法中使用多个返回!

例如,您可以通过以下方式避免此

 public String promComm( boolean answer ) { String returnValue = "Answer is false"; //or = "" if ( answer ) { switch ( randQuest.nextInt( 1 ) ) { case 0: returnValue = "Very Good!"; } switch ( randQuest.nextInt( 1 ) ) { case 0: returnValue = "No. Please try again."; } } return returnVal; }