Java 好奇这个函数在做什么

Java 好奇这个函数在做什么,java,function,return,invariants,Java,Function,Return,Invariants,有人能告诉我这个函数在做什么吗?我只知道它返回x+y的和,但我想知道为什么。谢谢 public static int f(int x, int y){ while( y > 0){ x = x + 1; y = y - 1; } return x; } 循环从y的值开始,并在每次迭代时递减,当y为零时停止 对于这些迭代中的每一次,1被添加到x。因此,对于y的“单位”,将“单位”添加到x Edit如注释中所述,如果y小于零,函

有人能告诉我这个函数在做什么吗?我只知道它返回x+y的和,但我想知道为什么。谢谢

    public static int f(int x, int y){
    while( y > 0){
        x = x + 1;
        y = y - 1;
    }
    return x;
}

循环从y的值开始,并在每次迭代时递减,当y为零时停止

对于这些迭代中的每一次,1被添加到x。因此,对于y的“单位”,将“单位”添加到x


Edit如注释中所述,如果
y
小于零,函数将不会返回两个数字的总和,因为循环根本不会执行。

加法可以看作是一系列增量。这就是这个函数的作用。它递增
x
y
次,并返回结果
x+y
。假设
y
是一个自然数。

有两种情况:

第一种情况:y 0
因为while循环为true,所以它返回x+y(x+迭代次数)


迭代次数是y的值,因为每次迭代,y将减少1,直到y=0

一步一步地进行,并在下次有问题时投入一些精力进行研究。如果
y,此函数将x增加1倍。所以它返回x+yWhy是
1+1
等于
2
?可能会帮助你理解。谢谢你的帮助!假设
y
以大于零的值开始。正如Dmitry Bychenko在他的评论中指出的那样,如果
y
以零或小于零的值开始,那么
x
中不会添加任何内容,并返回
x
的原始值。有人能解释否决票和删除请求吗?我不明白。我不知道,我觉得你的答案也很有用。我给了你+1I否决票,因为正如其他评论和答案所解释的那样,该方法并不总是返回
x+y
,因此声明它返回该值是不正确的。如果你得到了否决票,那么删除或修改你的答案来解决任何类似的问题。(当然,如果你仔细检查一个答案,并认为它是好的,那么你应该忽略掉反对票。)@Bobulus:“……修改你的答案以解决任何类似的问题。”但我就是这么做的。我仍然不理解它。该方法不假定
y
大于零,而是执行显式检查以确定其是否大于零。