Hallo,
Wir sollten nach der letzten Übung ein sehr einfaches Programm modifizieren, damit es einen Wert von der Kommandozeile einlesen kann.
Das Programm war das folgende:
Das hat auch soweit funktioniert, indem das Programm die Werte von 0 bis 10 aufsummiert hat.
Nun meinte der Prof, wir müssten nur das ziel = 10 durch folgendes ersetzen, um eine beliebige Zahl über die Kommandozeile einzulesen:
ziel = Integer.ParseInt(args[0]);
Dies jedoch führt zur Exception
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
Ich kenne Java von früher noch weit genug, um alles zu verstehen, was dieses winzige Programm tut und kenne auch den Befehl Integer.ParseInt noch (wandelt einen String in einer Integer um)
Auch kenne ich diese Exception, die mir sagen möchte, dass ich versucht habe, auf das Array zuzugreifen, jedoch außerhalb seiner Grenzen.
Da der Prof. aber der Meinung war, es genüge die einfache Ersetzung der Zuweisung, bin ich ein wenig verwirrt.
Ansich müsste hierbei doch die main mit einem zu übergebenen Wert aufgerufen werden, damit das Array bereits initialisiert ist, oder?
Mein Problem ist jedoch bei dem Gedanken, dass die Main doch ansich so oder so die erste Methode ist, die überhaupt aufgerufen wird, oder?
Lange Rede, kurzer oder gar kein Sinn: Wie kriege ich dieses Problem gelöst, was es laut Prof gar nicht geben dürfte.
Abschließend noch der modifizierte, aber falsche Quelltext:
Sorry, dass ich so eine doofe Frage stelle, aber google wollte mir da nicht wirklich helfen...überall gab es nur die Beschreibung, was das bedeutet, was ich aber ohnehin schon wusste, nirgendwo aber fand ich eine Lösung. Vermutlich stehe ich einfach nur völlig auf dem Schlauch.
mfg
Moch
Wir sollten nach der letzten Übung ein sehr einfaches Programm modifizieren, damit es einen Wert von der Kommandozeile einlesen kann.
Das Programm war das folgende:
Java:
public class Sum {
public static void main(string[] args) {
int ziel = 10;
int tausch;
int erg = 0;
for(int i = 0; i<=ziel; i++){
tausch= erg + i;
erg = tausch;
}
System.out.println("Ergebnis: " + erg);
}}
Nun meinte der Prof, wir müssten nur das ziel = 10 durch folgendes ersetzen, um eine beliebige Zahl über die Kommandozeile einzulesen:
ziel = Integer.ParseInt(args[0]);
Dies jedoch führt zur Exception
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
Ich kenne Java von früher noch weit genug, um alles zu verstehen, was dieses winzige Programm tut und kenne auch den Befehl Integer.ParseInt noch (wandelt einen String in einer Integer um)
Auch kenne ich diese Exception, die mir sagen möchte, dass ich versucht habe, auf das Array zuzugreifen, jedoch außerhalb seiner Grenzen.
Da der Prof. aber der Meinung war, es genüge die einfache Ersetzung der Zuweisung, bin ich ein wenig verwirrt.
Ansich müsste hierbei doch die main mit einem zu übergebenen Wert aufgerufen werden, damit das Array bereits initialisiert ist, oder?
Mein Problem ist jedoch bei dem Gedanken, dass die Main doch ansich so oder so die erste Methode ist, die überhaupt aufgerufen wird, oder?
Lange Rede, kurzer oder gar kein Sinn: Wie kriege ich dieses Problem gelöst, was es laut Prof gar nicht geben dürfte.
Abschließend noch der modifizierte, aber falsche Quelltext:
Java:
public class Sum {
public static void main(string[] args) {
int ziel = Integer.ParseInt(args[0]);
int tausch;
int erg = 0;
for(int i = 0; i<=ziel; i++){
tausch= erg + i;
erg = tausch;
}
System.out.println("Ergebnis: " + erg);
}}
Sorry, dass ich so eine doofe Frage stelle, aber google wollte mir da nicht wirklich helfen...überall gab es nur die Beschreibung, was das bedeutet, was ich aber ohnehin schon wusste, nirgendwo aber fand ich eine Lösung. Vermutlich stehe ich einfach nur völlig auf dem Schlauch.
mfg
Moch