返回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;
}