'return' 关键字放在 java 的什么地方?

Where to put the 'return' keyword in java?

任务要求如下:

注:为任务提供了nYears = 13 这是我们的代码将被测试的地方:


到目前为止,我有以下代码并且可以正常工作,但由于 "return" 关键字,我无法最终确定它。

public class Person{

    private String name;
    private int age;
    private int getOlder;

    public Person(){
        this("Otto", 25);
    }
    public Person( String name, int age ){
        this.name = name;
        this.age = age;
    }
    public String getName(){
        return name;
    }
    public int getAge(){
        return age;
    }
    public int growOlder(int nYears){

        if(nYears >= 0){
            age = age + 13;
            System.out.println("true");

        }else{
            System.out.println("false");
        }
       return nYears; //ERROR
    }

    public String toString( ){
        return getName() + " " + getAge();

    }
}

我应该得到如下结果:

Otto 25
true
Otto 38
false
Otto 38

但是使用这段代码,我得到了这些结果:

Otto 25
true
13
Otto 38
false
-13
Otto 38

如果我没有放置 return 或 return 值,则会产生错误。我真的不知道在这里做什么。提前致谢!

在java中,有一段代码叫做方法。 (方法有时称为函数。)

在此代码段中,您定义了一个方法:

public int growOlder(int nYears){
    if(nYears >= 0){
        age = age + 13;
        System.out.println("true");

    }else{
        System.out.println("false");
    }
   return nYears; //ERROR
}

该方法 public只能从 class 之外的代码访问。

方法 returnint.

类型的值

调用方法growOlder

该方法接受类型为 int 的变量,声明为 nYears.

所以方法定义如下:

<visibility> <return type> <name>    <parameters>
   public         int     growOlder  (int nYears)

return语句用于退出一个方法。当使用 return 类型(void 以外的任何类型)定义方法时,方法中的所有代码路径都必须具有 return 语句及其 returning 的值。

让我们再看看你的方法,看看如何让输出如你所愿。

   public int growOlder(int nYears){

        if(nYears >= 0){
            age = age + 13;
            System.out.println("true");

        }else{
            System.out.println("false");
        }
       return nYears; //ERROR
    }

看起来您正在打印 true 和 false 而不是 returning 它。

这里的动作是把return的类型从int改成boolean,把你的System.out.println() return truereturn false.

修改后,我们可以压缩方法来更清楚地传达我们的信息:

public boolean growOlder(int nYears){
    age += nYears; //Add nYears to age and update its value
    return nYears >= 0; //Return the value of the expression "is nYears greater than or equal to 0" yes results in true, no results in false.
}