我正在创建一个方法,它接受两个整数,基数和幂,作为参数并找到基数^幂。如果基数或幂是负数,那么该方法必须抛出一个例外,即" n和p应该是非负的。"
这是我的代码:
import java.lang.*;
class MyCalculator{
public int power(int base, int power){
if (base < 0 && power < 0){
System.out.println("java.lang.Exception: n and p should be non-negative");
}
int calculator = (int) Math.pow(base, power);
return calculator;
}
}
以下是我的意见:
3 5
2 4
-1 -2
-1 3
这是我的输出:
243
16
java.lang.Exception: n and p should be non-negative
1
-1
这是我的目标输出:
243
16
java.lang.Exception: n and p should be non-negative
java.lang.Exception: n and p should be non-negative
有人请告诉我如何解决这个问题以及为什么我会得到一个&#34; 1&#34;和&#34; -1&#34;在末尾?
答案 0 :(得分:5)
base < 0 && power < 0
应该是:
base < 0 || power < 0
此外,你并没有真正抛出异常,你只是打印到控制台。
你应该抛出这样的异常(如果你想抛出一个):
import java.lang.*;
class MyCalculator{
public int power(int base, int power){
if (base < 0 || power < 0){
throw new Exception("n and p should be non-negative");
}
int calculator = (int) Math.pow(base, power);
return calculator;
}
}
您可能需要阅读:https://docs.oracle.com/javase/tutorial/essential/exceptions/
答案 1 :(得分:0)
首先,如果可以观察调用此方法的代码,我们可以提供更接近的原因。
其次,可能问题是你使用&#34;&amp;&amp;&#34;比较器确定两个参数都应为负数,以便打印&#34;异常&#34;同时我认为你想使用&#34; ||&#34;比较器,这意味着只有一个参数需要为负,才能进入&#34;异常&#34;