2017-06-16 6 views
0

Ich erstelle eine Methode, die zwei Integer, Basis und Potenz, als Parameter verwendet und Base^Power findet. Wenn entweder die Basis oder die Potenz negativ ist, muss die Methode eine Ausnahme auslösen, die besagt, dass "n und p nicht negativ sein sollten".Java.Lang.Exception mit Math.pow

Hier ist mein Code:

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; 
    } 
} 

Hier ist meine Eingabe:

3 5 
2 4 
-1 -2 
-1 3 

hier meine Ausgabe lautet:

243 
16 
java.lang.Exception: n and p should be non-negative 
1 
-1 

Hier ist mein Ziel ausgegeben:

243 
16 
java.lang.Exception: n and p should be non-negative 
java.lang.Exception: n and p should be non-negative 

Würde mir bitte jemand sagen, wie ich das beheben kann und warum ich am Ende eine "1" und "-1" bekomme?

+0

Sie haben den Code, der diesen Code aufruft, nicht gepostet. – vanza

+0

Was ist Ihre Eingabe? – Celt

+1

'||' anstatt '&&' –

Antwort

4
base < 0 && power < 0 

sein sollte:

base < 0 || power < 0 

Auch sind Sie nicht wirklich die Ausnahme zu werfen, drucken Sie nur an die Konsole.

Sie sollten Ausnahme wie diese werfen (Wenn Sie einen werfen wollen):

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; 
    } 
} 

Sie können lesen möchten: https://docs.oracle.com/javase/tutorial/essential/exceptions/

+1

Vielen Dank für Ihre Hilfe. –

0

Vor allem, wenn es möglich sein könnte, um den Code zu sehen das nennt man diese Methode, die wir näher erläutern könnten.

Zweitens, wahrscheinlich ist das Problem, dass Sie "& &" Komparator verwenden, dass beide Parameter sollten negativ sein, um die "Ausnahme" zu drucken, in der Zwischenzeit denke ich, dass Sie "||" verwenden möchten Komparator, dh nur ein Parameter muss negativ sein, um zur "Exception" zu gelangen

+0

Vielen Dank für Ihre Hilfe. –

Verwandte Themen