Hallo zusammen,
ich bin blutiger Java Anfänger und habe ein kleines Anliegen ;-)
Ich möchte (muss) eine Methode bauen in welcher geprüft wird, ob es durch die Multiplikation von zwei Zahlen (Datentyp short) zu einem Bereichsüberlauf kommt.
Falls ja, soll eine Fehlermeldung ausgegeben werden, falls nein, soll das Ergebnis zurückgegeben werden.
Mein Ansatz sieht so aus:
Das Problem - das mit auch durchaus bewusst ist - ist ja, dass in der IF Bedingung keine return Anweisung drin ist, dies aber erwartet wird.
Ich weiß nun nur nicht, wie ich erreichen kann, dass entweder eine Fehlermeldung angezeigt wird oder das Ergebnis returned wird.
Ich könnte natürlich auch den Rückgabewert auf void setzen und beides auf der Console ausgeben, jedoch sollen auch andere Methoden Rückgabewerte dieser Methode verarbeiten können.
Puh, das wars erst einmal.
Die Lösung ist sicherlich trivial - aber mir fehlt der Ansatz
Vielen Dank im Voraus für Eure Ratschläge.
Euer Hugo
ich bin blutiger Java Anfänger und habe ein kleines Anliegen ;-)
Ich möchte (muss) eine Methode bauen in welcher geprüft wird, ob es durch die Multiplikation von zwei Zahlen (Datentyp short) zu einem Bereichsüberlauf kommt.
Falls ja, soll eine Fehlermeldung ausgegeben werden, falls nein, soll das Ergebnis zurückgegeben werden.
Mein Ansatz sieht so aus:
Java:
public short mult(short number1, short number2)
{
if (((number1 * number2) > (short)(Math.pow(2,15)-1)) || ((number1 * number2) < (short)(Math.pow(-2,15))))
{
System.out.println("Bereichsüberlauf");
}
else
{
return (short)(number1*number2);
}
}
Das Problem - das mit auch durchaus bewusst ist - ist ja, dass in der IF Bedingung keine return Anweisung drin ist, dies aber erwartet wird.
Ich weiß nun nur nicht, wie ich erreichen kann, dass entweder eine Fehlermeldung angezeigt wird oder das Ergebnis returned wird.
Ich könnte natürlich auch den Rückgabewert auf void setzen und beides auf der Console ausgeben, jedoch sollen auch andere Methoden Rückgabewerte dieser Methode verarbeiten können.
Puh, das wars erst einmal.
Die Lösung ist sicherlich trivial - aber mir fehlt der Ansatz
Vielen Dank im Voraus für Eure Ratschläge.
Euer Hugo