From d531bf0d4facfa7fbaa3e281ba79bad20b85611c Mon Sep 17 00:00:00 2001 From: "artem.didytschuk" Date: Mon, 19 Apr 2021 10:01:44 +0200 Subject: [PATCH] Negative Zahlen implementiert im format (-#) --- Rechenmaschine.java | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/Rechenmaschine.java b/Rechenmaschine.java index d3371db..4488450 100644 --- a/Rechenmaschine.java +++ b/Rechenmaschine.java @@ -241,7 +241,11 @@ public class Rechenmaschine { currentToken.append(buchstabe); state = 2; } - case '+', '-', '*', '/' -> { + case '+', '-' -> { + tokenlist.append(new Token("OPERATOR",Character.toString(buchstabe))); + state = 5; + } + case '*', '/' -> { System.out.println("Unmittelbar nach ( darf kein Operator oder ) folgen."); return false; } @@ -321,7 +325,7 @@ public class Rechenmaschine { state = 1; break; } else if( currentToken.getToken().equals("(")){ - state = 0; + state = 2; break; } else if( currentToken.getToken().equals(")")){ state = 1; @@ -345,11 +349,28 @@ public class Rechenmaschine { return false; } else if( currentToken.getToken().equals(")")) { state = 1; + break; + } else { + fehler = "Unbekanntes Token: "+currentToken.getType(); + return false; + } + case 2: + if( currentToken.getType().equals("OPERATOR") ) { + state = 0; + break; + } else if( currentToken.getType().equals("OPERAND") ) { + state = 1; + break; + } else if( currentToken.getToken().equals("(")){ + state = 2; + break; + } else if( currentToken.getToken().equals(")")){ + state = 1; + break; } else { fehler = "Unbekanntes Token: "+currentToken.getType(); return false; } - } tokenlist.next();