返回Java中的整数值

返回Java中的整数值,java,Java,此代码始终显示以下错误: 行“return random2”中的不可访问语句您不能返回两次,只能有一条return语句 public class MultiplicationClass{ int answer; int random; int random2; int create(){ random = (int)(1+Math.random()*15); random2 = (int)(1+Math.random()*15); return random;

此代码始终显示以下错误:
行“return random2”中的不可访问语句

您不能返回两次,只能有一条return语句

public class MultiplicationClass{

int answer;
int random;
int random2;

int create(){
    random = (int)(1+Math.random()*15);
    random2 = (int)(1+Math.random()*15);
    return random;
    return random2;
}

boolean checkAnswer(int useranswer){
    if(useranswer==getAnswer()){
        return true;
    }else{
        return false;
    }
}

int getAnswer(){
    return random*random2;
} 

}
如果一个方法有一个返回值,比如这个返回一个int,那么该方法必须至少返回一个值。return语句之后的任何指令,如果返回语句本身没有被分支包围,都将无法访问,并抛出编译错误,如您所见

我将用几个例子来解释多个分支:

return random;
return random2; // This one will never be reached since you've already returned from the method.
此方法不会编译,因为如果i不等于0,编译器不知道如何返回该方法。若要解决此问题,请添加一个else或一个最终返回语句,这两个语句中的任何一个都将起作用

public int someMethod(int i) {
  if(i == 0) {
    return i;
  }
}
或:

现在编译器知道如果i不是0,它可以返回某种类型的值

另外,不相关的注释,但看看您是如何编写代码的,我猜您来自C背景。首先,所有的方法和变量都是默认范围,或者包私有。即使该类被声明为公共类,它们也只能由该类本身以及与其共享同一包的类访问

您可能想看看这里:

返回语句后不能编写代码

public class MultiplicationClass{

int answer;
int random;
int random2;

int create(){
    random = (int)(1+Math.random()*15);
    random2 = (int)(1+Math.random()*15);
    return random;
    return random2;
}

boolean checkAnswer(int useranswer){
    if(useranswer==getAnswer()){
        return true;
    }else{
        return false;
    }
}

int getAnswer(){
    return random*random2;
} 

}
作为random和random2返回相同的值,然后

int create(){
    random = (int)(1+Math.random()*15);
    random2 = (int)(1+Math.random()*15);
    return random;
    return random2;
}

Java中的每个方法只能返回一个值。 在您的示例中,您不必返回任何值,因为您正在将这些值分配给全局变量。所以这就足够了:

 int create(){
        random = (int)(1+Math.random()*15);    
        return random;

    }
如果要返回两个值,只需调用该方法两次并将其指定给变量,如下所示:

void create(){
    random = (int)(1+Math.random()*15);
    random2 = (int)(1+Math.random()*15);
}

我试过这个,效果很好
检查我的github存储库
https://github.com/UnknownAD/CommonProgramingIssues
公共类{
公共静态void main(字符串[]args){
System.out.println(“你好”);
原始变量=17;
var edit=Integer.toString(primal);
系统输出打印项次(编辑);
方法(“22”);
}
静态无效方法(字符串tr){
int stdin=Integer.parseInt(tr);
int proc=stdin+5;
字符串stdout=Integer.toString(proc);
系统输出打印项次(proc);
}

}
谢谢我发现你的信息很有帮助,我设法解决了我的问题:)谢谢我发现你的信息很有帮助,我设法解决了我的问题:)一般来说,你应该接受@dardo的答案,因为它是正确的,首先,你有更多的投票权。但这两种观点都是正确的。
void create(){
    random = (int)(1+Math.random()*15);
    random2 = (int)(1+Math.random()*15);
}
int create(){
    int random = (int)(1+Math.random()*15);
    return random;
}

...

int getAnswer(){
    answer = create();
    answer2 = create();
    return answer*answer2;
}