在Java中返回整数值

时间:2013-04-17 14:50:40

标签: java

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

}

此代码始终给出错误: unreachable statement in the line "return random2"

4 个答案:

答案 0 :(得分:6)

你不能两次返回,你只能有1个返回声明。

return random;
return random2; // This one will never be reached since you've already returned from the method.

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

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

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

由于如果i不等于0,编译器不知道如何返回该方法,则此方法将无法编译。要解决这个问题,可以添加else或者最终返回语句,其中任何一个都可以。

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

或者:

public int someMethod(int i) {
  if(i == 0) {
    return i;
  } else {
    return 2;
  }
}

现在编译器知道我是不是0,它可以返回某种值。

另外,不相关的说明,但看​​看你如何编写代码,我猜你是从C背景来的。简而言之,您的所有方法和变量都是默认范围或包私有。即使该类被声明为public,它们也只能由类本身以及与它共享相同包的类访问。

可能想看这里:

http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

答案 1 :(得分:5)

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

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

答案 2 :(得分:0)

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

返回语句后无法编写代码。

随机和随机2返回相同的值然后

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

    }

答案 3 :(得分:-1)

<p>
i've tryed this one and it worked
check my github repository 
https://github.com/UnknownAD/CommonProgramingIssues


public class s{
        public static void main(String [] args){
        System.out.println("HI there");
        var primal=17;
        var edit=Integer.toString(primal);
        System.out.println(edit);
        method("22");
        }
        static void method(String tr){
        int stdin=Integer.parseInt(tr);
        int proc=stdin+5;
        String stdout=Integer.toString(proc);
        System.out.println(proc);
}
}