好奇这个功能在做什么

时间:2016-10-16 19:05:45

标签: 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;
}

3 个答案:

答案 0 :(得分:3)

有两种情况:

第一种情况: y< = 0
因为while循环是假的,它只返回 x ("它跳过部分")

第二种情况: y> 0
因为while循环是真的,所以返回 x + y (x +迭代次数)

迭代次数 y 的值,因为每次迭代,y将减少 1,直到 y = 0 。< / p>

答案 1 :(得分:0)

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

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

编辑如评论中所述,如果y小于零,函数将返回两个数字的总和,因为循环将根本不执行。

答案 2 :(得分:-1)

可以将添加视为一系列增量。这就是这个功能的作用。它会增加x y次,并返回x + y的结果。假设y是自然数。