Hallo,
Ich habe stehe vor der Aufgabe den Taschenrechner auf der Seite "https://www.online-calculator.com/" nachzubilden und möchte das Java
bei ausführen dieses Tests mir die Fehlermeldung "Error" ausgibt wenn ich versuche durch 0 zu teilen.
Leider weiß ich nicht wie ich das in dem case statement formulieren soll, ich wäre sehr froh wenn mir jemand hilft
Ich erhalte für das else Statement die Fehlermeldung: "Not a statement"
Test:
@test
@DisplayName("error after dividing 0 through 0")
void testDividingThroughZero(){
Calculator calc = new Calculator();
calc.pressDigitKey(0);
calc.pressBinaryOperationKey("/");
calc.pressDigitKey(0);
String expected = "Error";
String actual = calc.readScreen();
assertEquals(expected,actual);
}
Implementierungscode:
public void pressEqualsKey() {
var result = switch(latestOperation) {
case "+" -> latestValue + Double.parseDouble(screen);
case "-" -> latestValue - Double.parseDouble(screen);
case "x" -> latestValue * Double.parseDouble(screen);
case "/" -> {
if (latestValue == 0) {
System.out.println("ERROR");}
else {latestValue / Double.parseDouble(screen);
}
}default -> throw new IllegalArgumentException();
};
screen = Double.toString(result);
if(screen.endsWith(".0")) screen = screen.substring(0,screen.length()-2);
if(screen.contains(".") && screen.length() > 11) screen = screen.substring(0, 10);
}
}
Gesamte Datei ist im Anhang!
Ich habe stehe vor der Aufgabe den Taschenrechner auf der Seite "https://www.online-calculator.com/" nachzubilden und möchte das Java
bei ausführen dieses Tests mir die Fehlermeldung "Error" ausgibt wenn ich versuche durch 0 zu teilen.
Leider weiß ich nicht wie ich das in dem case statement formulieren soll, ich wäre sehr froh wenn mir jemand hilft
Ich erhalte für das else Statement die Fehlermeldung: "Not a statement"
Test:
@test
@DisplayName("error after dividing 0 through 0")
void testDividingThroughZero(){
Calculator calc = new Calculator();
calc.pressDigitKey(0);
calc.pressBinaryOperationKey("/");
calc.pressDigitKey(0);
String expected = "Error";
String actual = calc.readScreen();
assertEquals(expected,actual);
}
Implementierungscode:
public void pressEqualsKey() {
var result = switch(latestOperation) {
case "+" -> latestValue + Double.parseDouble(screen);
case "-" -> latestValue - Double.parseDouble(screen);
case "x" -> latestValue * Double.parseDouble(screen);
case "/" -> {
if (latestValue == 0) {
System.out.println("ERROR");}
else {latestValue / Double.parseDouble(screen);
}
}default -> throw new IllegalArgumentException();
};
screen = Double.toString(result);
if(screen.endsWith(".0")) screen = screen.substring(0,screen.length()-2);
if(screen.contains(".") && screen.length() > 11) screen = screen.substring(0, 10);
}
}
Gesamte Datei ist im Anhang!