From f8aea0ce3602a03cbb2b050d8d473f4a1777433e Mon Sep 17 00:00:00 2001 From: andre Date: Sun, 23 Jun 2024 20:25:40 +0200 Subject: [PATCH] Schleifen-Fehler behoben --- PR1_Pflichtuebung6/src/ueb6/Rechner.java | 36 +++++++++++++----------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/PR1_Pflichtuebung6/src/ueb6/Rechner.java b/PR1_Pflichtuebung6/src/ueb6/Rechner.java index 5c08aa4..6a28b88 100644 --- a/PR1_Pflichtuebung6/src/ueb6/Rechner.java +++ b/PR1_Pflichtuebung6/src/ueb6/Rechner.java @@ -9,8 +9,7 @@ public class Rechner { //Endlosschleife while(true) { - - String input =""; + String input = ""; System.out.println("Welche Rechenart soll ausgeführt werden?"); String op[] = {"Multiplikation", "Division", "Exponent", "Fakultät"}; @@ -19,24 +18,21 @@ public class Rechner { System.out.println("[ m | d | e | f ]"); System.out.print("Geben Sie das zugehörige Zeichen an: "); - try { - input = sc.nextLine(); - - //Eingabefehler abfangen - if (input.length() != 1) - throw new IllegalArgumentException("Bitte nur ein Zeichen eingeben. Versuche es erneut."); + input = sc.nextLine(); + if (input.length() > 1) { + System.out.println("Nur ein Zeichen eingeben. Versuche es erneut."); + } else if (input.length() < 1) { + System.out.println("Bitte ein Zeichen eingeben. Versuche es erneut."); + } else { char c = input.charAt(0); - - int ergebnis = berechnung(c); - // if (ergebnis != -1) + int ergebnis = berechnung(c); + if (ergebnis != -1) { System.out.println("Ergebnis: " + ergebnis); - - } catch(IllegalArgumentException e) { - System.out.println(e.getMessage()); + sc.nextLine(); + } } - System.out.println("\n"); - + System.out.print("\n"); } } @@ -63,6 +59,7 @@ public class Rechner { return ergebnis; } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); + sc.nextLine(); ergebnis = -1; return ergebnis; } @@ -79,10 +76,12 @@ public class Rechner { return ergebnis; } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); + sc.nextLine(); ergebnis = -1; return ergebnis; } catch (ArithmeticException e) { System.out.println(e.getMessage()); + sc.nextLine(); ergebnis = -1; return ergebnis; } @@ -98,6 +97,7 @@ public class Rechner { return ergebnis; } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); + sc.nextLine(); ergebnis = -1; return ergebnis; } @@ -111,13 +111,15 @@ public class Rechner { return ergebnis; } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); + sc.nextLine(); ergebnis = -1; return ergebnis; } default: System.out.println("Kein gültiges Zeichen eingegeben! Bitte Versuche es erneut."); - return -1; + ergebnis = -1; + return ergebnis; } }