Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Fehler in Programm: Index -1 out of bounds for length 0
Hallo, ich habe die Aufgabe erhalten: Schreiben Sie ein Programm, dass beliebig viele Zahlen als Programmparameter übergeben bekommen kann. Zusätzlich wird als letztes Zeichen ein „+“ oder „-“ übergeben. Lesen Sie alle Parameter ein und führen Sie eine Addition bzw. eine Subtraktion auf alle übergebenen Zahlen aus. Bei einer Subtraktion soll von der ersten Zahl subtrahiert werden. Sie können davon ausgehen, dass immer mindestens zwei Zahlen übergeben werden und dass nur die Operatoren + und - übergeben werden.
Beispiel: java Parameteruebergabe 1 2 3 + -> 6 (= 1 + 2 + 3)
java Parameteruebergabe 10 2 3 – -> 5 (= 10 - 2 - 3)
Ich habe nun ein Programm geschrieben, dass so aussieht, allerdings bekomme ich immer den Fehler "Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 0". Ich habe diesen Fehler noch nie erhalten und leider keine Ahnung, was er bedeutet, könnte mir da jemand weiterhelfen, wie ich mein Programm zum laufen bekomme? Vielen Dank!
Code:
public class Rechner {
public static void main(String[] args) {
double solution = 0;
for (int i = 1; i < args.length - 1; i++) {
solution = solution + Double.parseDouble(args);
}
if (args[args.length - 1].equals("+")) {
solution = Double.parseDouble(args[0]) + solution;
} else {
solution = Double.parseDouble(args[0]) - solution;
}
System.out.println(solution);
}
}
Kannst du den Code bitte in Codetags setzen: Die drei kleinen Punkte neben dem Smiley. Sonst werden u.U. Zeichen verschluckt.
Aber generell: Es ist sinnvoll zuerst zu schauen, welche mathematische Operation verlangt wird und anschließend diese durchzuführen. Also entweder die Zahlen alle addieren oder alle der Reihe nach voneinander subtrahieren.
Vergiss es, so wie du es vorhast wird es auch funktionieren.
java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 0". Ich habe diesen Fehler noch nie erhalten und leider keine Ahnung, was er bedeutet,
Naja, er bedeutet genau das, was da steht: es wurde versucht, auf das Element mit Index -1 zuzugreifen. Das geht nicht, weil es außerhalb der Arraygrenzen liegt. In dem Fall war das Array 0 Elemente lang. Nach dem Überfliegen Deines Codes würde ich sagen: Du hast das Programm ohne Angabe von Parametern aufgerufen.
Naja, er bedeutet genau das, was da steht: es wurde versucht, auf das Element mit Index -1 zuzugreifen. Das geht nicht, weil es außerhalb der Arraygrenzen liegt. In dem Fall war das Array 0 Elemente lang. Nach dem Überfliegen Deines Codes würde ich sagen: Du hast das Programm ohne Angabe von Parametern aufgerufen.
Es ist sogar sehr sinnvoll, das zu tun. Im Sinne der Aufgabe sollte allerdings geprüft werden, ob mindestens drei Argumente übergeben wurden. Und, um es vollständig zu machen, es sollte auch noch geprüft werden, ob es sich um Zahlen und um +/- handelt.
Wobei es durch die Aufgabe explizit nicht gefordert ist: