forked from IF-LK-2020/rechenmaschine
Merge branch 'main' of https://git.ngb.schule/artem.didytschuk/rechenmaschine into main
This commit is contained in:
@@ -71,6 +71,9 @@ public class Rechenmaschine {
|
||||
case '+':
|
||||
fehler = "Fehler im Wort " +pEingabe+ ":\nDas Wort darf nicht mit + beginnen!";
|
||||
return false;
|
||||
case '-':
|
||||
fehler = "Fehler im Wort " +pEingabe+ ":\nDas Wort darf nicht mit - beginnen!";
|
||||
return false;
|
||||
|
||||
default:
|
||||
fehler = "Fehler im Wort " +pEingabe+ ":\nDer Buchstabe " + buchstabe + " gehört nicht zur Sprache!";
|
||||
@@ -82,9 +85,10 @@ public class Rechenmaschine {
|
||||
case 1:
|
||||
switch( buchstabe ) {
|
||||
case '+':
|
||||
case '-':
|
||||
tokenlist.append(new Token("OPERAND", currentToken));
|
||||
currentToken = "";
|
||||
tokenlist.append(new Token("OPERATOR"));
|
||||
tokenlist.append(new Token("OPERATOR",Character.toString(buchstabe)));
|
||||
state = 0;
|
||||
break;
|
||||
|
||||
@@ -112,12 +116,13 @@ public class Rechenmaschine {
|
||||
case 2:
|
||||
switch( buchstabe ) {
|
||||
case '+':
|
||||
tokenlist.append(new Token("OPERATOR"));
|
||||
case '-':
|
||||
tokenlist.append(new Token("OPERATOR",Character.toString(buchstabe)));
|
||||
state = 0;
|
||||
break;
|
||||
|
||||
default:
|
||||
fehler = "Fehler im Wort " +pEingabe+ ":\nNach 0 am Anfang muss ein + folgen!";
|
||||
fehler = "Fehler im Wort " +pEingabe+ ":\nNach 0 am Anfang muss ein + oder - folgen!";
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
@@ -125,7 +130,7 @@ public class Rechenmaschine {
|
||||
}
|
||||
|
||||
if( state == 0 ) {
|
||||
fehler = "Fehler im Wort " +pEingabe+ ":\nDas Wort darf nicht auf + enden!";
|
||||
fehler = "Fehler im Wort " +pEingabe+ ":\nDas Wort darf nicht auf + oder - enden!";
|
||||
return false;
|
||||
} else {
|
||||
tokenlist.append(new Token("OPERAND", currentToken));
|
||||
@@ -183,13 +188,19 @@ public class Rechenmaschine {
|
||||
result = 0;
|
||||
|
||||
tokenlist.toFirst();
|
||||
String previous="";
|
||||
while( tokenlist.hasAccess() ) {
|
||||
Token currentToken = tokenlist.getContent();
|
||||
|
||||
if( currentToken.getType().equals("OPERAND") ) {
|
||||
result += Integer.parseInt(currentToken.getToken());
|
||||
if(currentToken.getType().equals("OPERATOR")){
|
||||
previous=currentToken.getToken();
|
||||
}
|
||||
if( currentToken.getType().equals("OPERAND") ) {
|
||||
if(previous.equals("+")||previous.equals("")){
|
||||
result += Integer.parseInt(currentToken.getToken());
|
||||
} else {
|
||||
result -= Integer.parseInt(currentToken.getToken());
|
||||
}
|
||||
}
|
||||
|
||||
tokenlist.next();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user