令人困惑的考试复习说明,java

时间:2015-12-10 20:23:52

标签: java if-statement methods static

所以我明天正在为我的考试而学习,其中一部分正在完成静态方法。我已经完成了所有,但有一部分令我感到困惑。以为我可能会寻求帮助。

下面的说明,我加粗了令人困惑的部分,并在下面解释原因。

一个。在不使用任何标准Java Math库方法的情况下完成此静态方法的实现。 仅在抛出异常时使用“if”语句。

/** 
* Computes the series n + n^3 + n^5 + ... n^k. 
* k-1 is used if k is even.
* @param n the base of the series 
* @param k the bound on the exponent of the last term of the series
* @throw IllegalArgumentException when k is less than 1
*/ 
public double oddSeries(double n, int k) {
    if (k < 1) {
        throw new IllegalArgumentException("K is less than 1");
    }
    double tempN = n;
    for (int i = 0; i < k; i++)
        tempN = tempN + (n * n);

    return tempN;
}

所以我抛出了IllegalArgumentException,并使用了一个if语句。如何检查k是否没有if语句或switch语句? 因为我们一般都会这样做

Boolean kEven = false;
if (k % 2 = 0)
kEven = true;

1 个答案:

答案 0 :(得分:7)

您不必检查k是否均匀,因为在这种情况下您必须使用k-1。只需执行此操作:

k = k - 1 + (k % 2);

当k为偶数时,它将执行k-1操作。如果k为奇数,则不会改变k值。