Try-catch-Anweisungen in berechnung() hinzugefügt
parent
e9d033d5ef
commit
6c80ae4cda
|
@ -7,6 +7,7 @@ public class Rechner {
|
|||
|
||||
public static void main(String[] args) {
|
||||
|
||||
//Endlosschleife
|
||||
while(true) {
|
||||
|
||||
String input ="";
|
||||
|
@ -20,19 +21,16 @@ public class Rechner {
|
|||
|
||||
try {
|
||||
input = sc.nextLine();
|
||||
if (input.length()!=1)
|
||||
throw new IllegalArgumentException("Nur ein Zeichen eingeben. Versuche es erneut.");
|
||||
|
||||
//Eingabefehler abfangen
|
||||
if (input.length() != 1)
|
||||
throw new IllegalArgumentException("Bitte nur ein Zeichen eingeben. Versuche es erneut.");
|
||||
|
||||
char c = input.charAt(0);
|
||||
|
||||
try {
|
||||
int ergebnis = berechnung(c);
|
||||
System.out.println("Ergebnis: " + ergebnis);
|
||||
} catch (IllegalArgumentException e) {
|
||||
System.out.println(e.getMessage());
|
||||
} catch(ArithmeticException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
int ergebnis = berechnung(c);
|
||||
// if (ergebnis != -1)
|
||||
System.out.println("Ergebnis: " + ergebnis);
|
||||
|
||||
} catch(IllegalArgumentException e) {
|
||||
System.out.println(e.getMessage());
|
||||
|
@ -60,8 +58,15 @@ public class Rechner {
|
|||
int faktor1 = sc.nextInt();
|
||||
System.out.print("Zweiten Faktor eingeben: ");
|
||||
int faktor2 = sc.nextInt();
|
||||
ergebnis = multiplizieren(faktor1, faktor2);
|
||||
return ergebnis;
|
||||
try {
|
||||
ergebnis = multiplizieren(faktor1, faktor2);
|
||||
return ergebnis;
|
||||
} catch (IllegalArgumentException e) {
|
||||
System.out.println(e.getMessage());
|
||||
ergebnis = -1;
|
||||
return ergebnis;
|
||||
}
|
||||
|
||||
|
||||
case 'd':
|
||||
System.out.println("\n* Division *");
|
||||
|
@ -69,8 +74,18 @@ public class Rechner {
|
|||
int dividend = sc.nextInt();
|
||||
System.out.print("Divisor eingeben: ");
|
||||
int divisor = sc.nextInt();
|
||||
ergebnis = dividieren(dividend, divisor);
|
||||
return ergebnis;
|
||||
try {
|
||||
ergebnis = dividieren(dividend, divisor);
|
||||
return ergebnis;
|
||||
} catch (IllegalArgumentException e) {
|
||||
System.out.println(e.getMessage());
|
||||
ergebnis = -1;
|
||||
return ergebnis;
|
||||
} catch (ArithmeticException e) {
|
||||
System.out.println(e.getMessage());
|
||||
ergebnis = -1;
|
||||
return ergebnis;
|
||||
}
|
||||
|
||||
case 'e':
|
||||
System.out.println("\n* Exponent *");
|
||||
|
@ -78,17 +93,30 @@ public class Rechner {
|
|||
int grundwert = sc.nextInt();
|
||||
System.out.print("Exponent eingeben: ");
|
||||
int exponent = sc.nextInt();
|
||||
ergebnis = exponent(grundwert, exponent);
|
||||
return ergebnis;
|
||||
try {
|
||||
ergebnis = exponent(grundwert, exponent);
|
||||
return ergebnis;
|
||||
} catch (IllegalArgumentException e) {
|
||||
System.out.println(e.getMessage());
|
||||
ergebnis = -1;
|
||||
return ergebnis;
|
||||
}
|
||||
|
||||
case 'f':
|
||||
System.out.println("\n* Fakultät *");
|
||||
System.out.print("Zahl eingeben: ");
|
||||
int n = sc.nextInt();
|
||||
ergebnis = fakultaet(n);
|
||||
return ergebnis;
|
||||
try {
|
||||
ergebnis = fakultaet(n);
|
||||
return ergebnis;
|
||||
} catch (IllegalArgumentException e) {
|
||||
System.out.println(e.getMessage());
|
||||
ergebnis = -1;
|
||||
return ergebnis;
|
||||
}
|
||||
|
||||
default:
|
||||
System.out.println("Kein gültiges Zeichen eingegeben! Bitte Versuche es erneut.");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
@ -164,11 +192,11 @@ public class Rechner {
|
|||
* @throws IllegalArgumentException Wenn die Zahl negativ ist
|
||||
*/
|
||||
public static int fakultaet(int n) throws IllegalArgumentException {
|
||||
if (n < 0)
|
||||
throw new IllegalArgumentException();
|
||||
if (n == 0)
|
||||
if (n < 0) {
|
||||
throw new IllegalArgumentException("Zahl darf nicht negativ sein.");
|
||||
} else if (n == 0)
|
||||
return 0;
|
||||
if (n == 1 || n == 2)
|
||||
else if (n == 1 || n == 2)
|
||||
return n;
|
||||
else {
|
||||
return fakultaet(n-1) * n;
|
||||
|
|
Loading…
Reference in New Issue