我被困在模拟考试问题上。
我已经在下面写了这个课程并且有效。但是,在powN
方法的主体内,我需要使用for(){}
循环。另外,我需要使用powN
的非防御性定义。
以下是我的问题。我怎样才能使用for循环?什么是非防御性方法?如何在powN
中使用?
public class Power {
private double x = 0;
Power(double x) {
this.x = x;
}
public double getX() {
return x;
}
public double powN(int n) {
return Math.pow(getX(), n);
}
public static void main(String[] args) {
Power p = new Power(5.0);
double d = p.powN(2);
System.out.println(d);
}
}
答案 0 :(得分:2)
我的问题是如何使用for循环
我不熟悉java语法,但想法是:
public double powN(int n) {
double tmp=1;
for (int i=0;i<n;i++) {
tmp=tmp*getX();
}
return tmp;
}
不知道什么是非防守手段
答案 1 :(得分:1)
非防御只是意味着您没有专门编码来检查错误,例如n == 0,返回0。
相反,你只需要接受任何n并在你的for循环中使用它的值。
因此,不要使用内置的Math函数,只需编写一个For循环来执行相同的操作。
double result = 0.0
for (int i = 0; i < n; i++) {
result = result * x;
}
答案 2 :(得分:1)
我已经从您的资料中读到了关于防御性/非防御性方法的幻灯片。我想你的教授希望你检查这些参数是否有效。像这样:
public double powN(int n) {
if (n < 0) {
throw new UnsupportedOperationException("Only positive values are supported");
}
double tmp = 1;
for (int i = 0; i < n; i++) {
tmp = tmp * getX();
}
return tmp;
}