java - 返回 String 类型的结果 (Java)

标签 java string return

我在 Java 中返回 String 类型的结果时遇到问题。 这是完整的代码

import java.util.*;

public class Multiplication 
{
    static Random randomNumbers = new Random();
    static Scanner input = new Scanner(System.in);
    static int answer;

public static void multiplication()
{
    createQuestion(); //display first question
    int guess; //student's answer
    System.out.print("Your answer is (-1 to quite): ");
    guess = input.nextInt();

    while(guess != -1)
    {
        checkAnswer(guess);

        System.out.print("Your answer is (-1 to quite): ");
        guess = input.nextInt();
    }   
} //end method multiplication

//create new question
public static void createQuestion()
{
    int num_1 = randomNumbers.nextInt(10);
    int num_2 = randomNumbers.nextInt(10);
     answer = num_1 * num_2;
    System.out.printf("How much is %d times %d?\n", num_1, num_2);
}//end method createQuestion

public static  String createResponse(boolean correct)
{
    if (correct)

        switch(randomNumbers.nextInt(4))
        {
        case 0:
            return ("Very good!");
        case 1:
            return("Excellent!");
        case 2:
            return("Nice work!");
        case 3:
            return ("Keep the good work");
        } //end switch

//otherwise, assume incorrect
        switch(randomNumbers.nextInt(4))
        {
        case 0:
            return("No. Please try again.");
        case 1:
            return("Wrong. Try once more.");
        case 2:
            return("Don't give up!");
        case 3:
            return("No. Keep trying.");
        }//end switch

}//end method createResponse

//check in the student answer correctly
public static void checkAnswer(int guess)
{
    if(guess != answer)
    {
        System.out.println(createResponse(false));
    }
    else
    {
        System.out.print(createResponse(true));
        createQuestion();
    }

 }//end method checkAnswer
}//end class Multiplication

这是主要方法

 public class MultiplicationTest {

   public static void main(String[] args) {

       Multiplication app = new Multiplication();
       app.multiplication();
    }

}

问题出在 createResponse(boolean Correct) 方法中。这里 JDE 表示“此方法必须返回 String 类型的结果”。我已经提到过 String 类型返回。但该程序没有被执行。在方法 createResponse(boolean Correct) 下显示一条红线。

有人认为我搞砸了吗? 提前致谢!

最佳答案

编译器无法断言您的方法返回字符串。

这是因为您的 switch-case 可能无法返回任何内容。

您可以通过放置一个

来满足编译器的要求
return null;

在方法的末尾。

关于java - 返回 String 类型的结果 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26820668/

相关文章:

ruby - 如何在最后一组中用底线填充 "groups of 5 characters"?

python - 跨观测值和年份的运算返回 NaN

java - 从java返回一个值对象给flex,它包含两个字符串数组作为它的属性

Java套接字——套接字端口

string - Golang将字符串转换为io.Writer?

java - 从文本文件中检索字符串数据并将其存储到对象中

java - 在 Java 中将字符串转换为十六进制

javascript - 如何确保 if 循环在按顺序运行下一个 if 循环之前等待并接收结果

java - Vavr `Try.of` 与 `Try.run` 有什么区别

java - 为什么在 Struts 1.2.7 中延迟实例化 MessageResourcesFactory?