added javadoc

This commit is contained in:
schrom01 2022-04-10 18:18:06 +02:00
parent 2eed96c8f4
commit d044d6bbe8
3 changed files with 41 additions and 4 deletions

View File

@ -12,5 +12,6 @@ class Aufgabe2_KellerautomatTest {
assertThrows(IllegalArgumentException.class,()->Aufgabe2_Kellerautomat.calculate("34+34+"));
assertThrows(IllegalArgumentException.class,()->Aufgabe2_Kellerautomat.calculate("34+*"));
assertThrows(IllegalArgumentException.class,()->Aufgabe2_Kellerautomat.calculate("8+9+7*2*"));
assertThrows(IllegalArgumentException.class,()->Aufgabe2_Kellerautomat.calculate("57-"));
}
}

View File

@ -4,8 +4,16 @@ import java.util.Collections;
import java.util.List;
public class Aufgabe2_Kellerautomat {
private static String[] words = {"34+62+89+43+***", "31+78+987+1214++7++++++", "34+34+", "34+*", "8+9+7*2*"};
/**
* List of Words which will be calculated by Main Method
*/
private static String[] words = {"34+62+89+43+***", "31+78+987+1214++7++++++", "34+34+", "34+*", "8+9+7*2*", "57-"};
/**
* Calculates all words in Array words
* @param args no args needed
*/
public static void main(String[] args) {
for (String word : words) {
try {
@ -16,6 +24,12 @@ public class Aufgabe2_Kellerautomat {
}
}
/**
* Calculates the given Word
* @param word the word to calculate
* @return returns the result of the calculation
* @throws IllegalArgumentException if the word is invalid and can not be caluclated (not accepted words)
*/
public static int calculate(String word) throws IllegalArgumentException {
List<Character> wordChars = new ArrayList<>();
for (char symbol : word.toCharArray()) {
@ -122,25 +136,47 @@ public class Aufgabe2_Kellerautomat {
return -1;
}
private static void dontAccept(String word) {
/**
* Called if word is invalid, throws exception with errormessage
* @param word the invalid word
*/
private static void dontAccept(String word) throws IllegalArgumentException{
throw new IllegalArgumentException("Word: " + word + "\nnot accepted");
}
/**
* Called if end state is reached, prints the accepted word and result (word is accepted)
* @param word the accepted word
* @param result the result
*/
private static void accept(String word, int result) {
System.out.println("Word: " + word + "\naccepted\nResult " + result);
}
/**
* checks if a character is a operator
* @param symbol character to check
* @return true if character is a operator, false if not
*/
private static boolean isOperator(char symbol){
return symbol == '+' || symbol == '*';
}
private static int doOperation(char operator, int firstNumber, int secondNumber){
/**
* Calculates the result of a operation
* @param operator the operator
* @param firstNumber the first number of caluclation
* @param secondNumber the second number of calculation
* @return the result of the operation
* @throws IllegalArgumentException if the operator is invalid and can not be caluclated
*/
private static int doOperation(char operator, int firstNumber, int secondNumber) {
if(operator == '+'){
return firstNumber + secondNumber;
} else if(operator == '*'){
return firstNumber * secondNumber;
}
return -1;
throw new IllegalArgumentException("Invalid Operator: " + operator + "\n");
}
}