6

我很难理解 return 语句到底在做什么。例如,在这种方法中...

    public int GivePoints(int amount)
    {
        Points -= amount;
        return amount;
    }

即使我在返回后放置任何随机整数,GivePoints 方法仍然会做同样的事情。那么 return 语句在做什么呢?

4

5 回答 5

5

Return 将在调用时退出该函数。因此, return 语句下方的任何内容都不会被执行。

基本上,return表明该函数应该执行的任何操作都已执行,并将此操作的结果传回(如果适用)给调用者。

于 2013-03-06T02:05:49.093 回答
5

Return将始终退出(离开)函数,返回后的任何内容都不会执行。

返回示例:

public int GivePoints(int amount)
{
    Points -= amount;
    return; //this means exit the function now.
}

返回一个变量示例:

public int GivePoints(int amount)
{
    Points -= amount;
    return amount; //this means exit the function and take along 'amount'
}

返回一个变量示例并捕获返回的变量:

public int GivePoints(int amount)
{
    Points -= amount;
    return amount; //this means exit the function and take along 'amount'
}

int IamCatchingWhateverGotReturned = GivePoints(1000); //catch the returned variable (in our case amount)
于 2018-03-28T14:40:32.667 回答
3

return将控制权从当前方法返回给调用者,并将随它一起发送的任何参数传回。在您的示例中,GivePoints定义为返回一个整数,并接受一个整数作为参数。在您的示例中,返回的值实际上与参数值相同。

GivePoints在此示例中,从调用定义方法的代码中的其他位置使用返回值。

int currentPoints = GivePoints(1);

意味着它currentPoints被赋值为 1。

这分解为GivePoints被评估。的评估GivePoints基于方法返回的内容。GivePoints返回输入,因此GivePoints在上面的示例中将评估为 1。

于 2013-03-06T02:07:58.497 回答
0

只是对您最初目标的猜测

public int GivePoints(int amount)
{
    Points -= amount;
    return Points;
}

所以 return 将返回 Points 的更新值

如果这不是你的情况,代码应该是

public void GivePoints(int amount)
{
    Points -= amount;
}
于 2013-03-06T02:11:09.293 回答
0

在您的示例中,该函数正在返回您发送给它的确切数字。在这种情况下,您传递的任何值都是amount. 因此,您当前代码中的返回有点毫无意义。

所以在你的例子中:

int x = GivePoints(1000);

x 将等于 1000

于 2013-03-06T02:05:32.257 回答