Try-catch-Anweisungen in berechnung() hinzugefügt

master
andre 2024-06-23 19:20:22 +02:00
parent e9d033d5ef
commit 6c80ae4cda
1 changed files with 55 additions and 27 deletions

View File

@ -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();
//Eingabefehler abfangen
if (input.length() != 1)
throw new IllegalArgumentException("Nur ein Zeichen eingeben. Versuche es erneut.");
throw new IllegalArgumentException("Bitte nur ein Zeichen eingeben. Versuche es erneut.");
char c = input.charAt(0);
try {
int ergebnis = berechnung(c);
// if (ergebnis != -1)
System.out.println("Ergebnis: " + ergebnis);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
} catch(ArithmeticException e) {
System.out.println(e.getMessage());
}
} 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();
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();
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();
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();
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;