Java错误缺少返回语句

Java错误缺少返回语句,java,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 =

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

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." );

        }
    }
}

}在方法
promcom
中,如果
answer
false
则该方法不返回任何值。 如果
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";
  }

在方法
promcom
中,如果
answer
false
则该方法不返回任何值。 如果
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
在任何情况下都应该返回一个字符串,而它不返回字符串。
最简单的修复方法是添加一个默认返回语句

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

您的方法
promComm
在任何情况下都应该返回一个字符串,而它不返回字符串。
最简单的修复方法是添加一个默认返回语句

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

promComm方法返回字符串,但如果开关值不是0,则函数将不返回任何内容-没有默认的返回语句。

promComm方法返回字符串,但如果开关值不是0,则函数将不返回任何内容-没有默认的返回语句。

尝试编写此命令

public String promComm( boolean answer ){
    if ( answer ){
        //...
    }
    return "default value when answer is false.";
}
 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 "";
    }
试着写这个

 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 "";
    }

在if-else语句之后返回字符串结果

public String promComm( boolean answer ){

   if(answer){
       ...

   }else{

      ...
   }

return ""; //empty string <-- you are missing a default return statement
}
公共字符串promComm(布尔答案){
若有(答复){
...
}否则{
...
}

return“”;//空字符串在if-else语句之后返回字符串结果

public String promComm( boolean answer ){

   if(answer){
       ...

   }else{

      ...
   }

return ""; //empty string <-- you are missing a default return statement
}
公共字符串promComm(布尔答案){
若有(答复){
...
}否则{
...
}

return“”;//空字符串当方法具有返回类型时,其所有代码流都必须返回值。 在代码中,如果答案为false,则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;
}

当一个方法有一个返回类型时,它的所有代码流都必须返回一个值。 在代码中,如果答案为false,则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;
}

return
不使用括号。在您用下面的任何正确答案解决问题后,请查看Bob Martin在其中指出的内容,即永远不要编写使用布尔参数的方法。这只是一种糟糕的做法。我知道这不是答案,但您使用带有布尔参数的方法让您陷入麻烦首先是ble!所以,希望你会发现这个技巧很有用。干杯。
return
不使用括号。在你用下面的任何正确答案解决问题后,看看Bob Martin在其中指出的,永远不要编写使用布尔参数的方法。这只是一个糟糕的做法。我知道这不是answer但是你使用带有布尔参数的方法首先让你陷入了麻烦!所以,希望你会发现这个技巧很有用。干杯。你不应该也提供一个原因吗?为什么?@SiB:这很容易被shinobi理解你不应该也提供一个原因吗?为什么?@SiB:这很容易被shinobi理解