public class FindSum
{
private static int sum(int n)
{
if (n==1)
return 1;
else
return n + sum (n-1);
}
public static int getSum(int n)
{
if (n>0)
return sum(n);
else
{
throw new IllegalArgumentException
("Error: n must be positive");
}
}
}
根据我的书,这会在执行前测试 n>0。我不明白如果测试“if (n>0)”出现在算法之后,为什么会出现这种情况。为了完成这个测试,不应该翻转这两种方法吗?