2017-06-16 54 views
0

我正在創建一個方法,它將兩個整數,基數和功率作爲參數並查找base^power。如果基數或權力都是負數,那麼該方法必須拋出一個異常,表示「n和p應該是非負數」。Java.Lang.Exception與Math.pow

這裏是我的代碼:

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 

有人請告訴我如何解決這個問題,爲什麼我最後得到「1」和「-1」?

+0

您尚未發佈調用此代碼的代碼。 – vanza

+0

您的輸入是什麼? – Celt

+1

'||'而不是'&&' –

回答

4
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

首先,如果能有可能看代碼這就是所謂的這種方法,我們可以給出更近的原因第二,可能問題在於,你使用「& &」比較器來確定這兩個參數應該是負數以便打印「例外」,同時我認爲你想使用「||」這意味着只有一個參數需要爲負值才能進入「例外」

+0

謝謝你的幫助。 –