added javadoc
This commit is contained in:
parent
2eed96c8f4
commit
d044d6bbe8
|
@ -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-"));
|
||||
}
|
||||
}
|
Binary file not shown.
|
@ -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 == '*';
|
||||
}
|
||||
|
||||
/**
|
||||
* 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");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue