好吧,我正在尝试编写此代码,但我不断收到这个愚蠢的错误。我不知道我做错了什么,所以也许你们中的一位专家可以帮助我。
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." );
}
}
}
}
答案 0 :(得分:1)
方法promComm
如果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";
}
答案 1 :(得分:1)
你的方法promComm
应该在每种情况下返回一个字符串,而不是它。修复它以添加默认返回语句的最简单方法。
public String promComm( boolean answer ){
if ( answer ){
//...
}
return "default value when answer is false.";
}
答案 2 :(得分:1)
promComm方法返回String但是如果切换值不为0,那么你的函数将不返回任何内容 - 没有默认的return语句。
答案 3 :(得分:1)
尝试写这个
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 "";
}
答案 4 :(得分:1)
在if-else语句
之后返回一个String结果public String promComm( boolean answer ){
if(answer){
...
}else{
...
}
return ""; //empty string <-- you are missing a default return statement
}
答案 5 :(得分:1)
当方法具有返回类型时,其所有代码流都必须返回一个值。 如果答案是假的,你的代码中的promComm()不会遇到if和 永远不会回报价值!
除了不建议在方法中使用多个return!
例如,你可以通过以下方式避免这种情况: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;
}